2010-10-21 2 views
1

У меня есть следующий запрос, который прекрасно работает на всех моих SQL сервера 2005/2008 базы данныхSql Server sysprocesses запрос

SELECT sysprocesses.spid 
FROM master.dbo.sysprocesses 

Однако для одной из моих баз данных это дать мне связывающую ошибку на спид колонке (не может bind multipart identifier).

Я проверил режим совместимости db и установлен на 2005 год, поэтому я уверен, что это не проблема, но не может понять, что еще проверить.

ответ

1

попробовать это:

SELECT s.spid 
FROM master.dbo.sysprocesses s 

Однако master.dbo.sysprocesses и его вид совместимости sys.sysprocesses устарели, поэтому используйте вместо этого:

select session_id from sys.dm_exec_sessions 

см: Mapping System Tables to System Views (Transact-SQL)

0

Попробуйте использовать:

select spid from sys.sysprocesses 

вместо этого. dbo.sysproceses устарел AFAIK.

+0

Это действительно решить эту проблему в этот конкретный сценарий. Однако мне бы очень хотелось знать, почему это может не работать в некоторых конфигурациях, поскольку это, похоже, влияет и на другие скрипты. –

+0

Мне кажется, что кто-то с привилегиями sysadmin каким-то образом случайно укрепил определение вашего представления dbo.sysprocesses в какой-то момент ... –