2010-10-21 6 views
1

je la requête suivante qui fonctionne bien sur l'ensemble de mon serveur SQL 2005/2008 bases de donnéesla requête de Sql Server

SELECT sysprocesses.spid 
FROM master.dbo.sysprocesses 

Cependant, pour une de mes bases de données, il me donne une erreur de liaison sur la colonne SPID (ne peut pas lier l'identificateur multipart).

J'ai vérifié le mode de compatibilité de la base de données et il est réglé sur 2005, donc je suis sûr que ce n'est pas le problème, mais je ne vois pas quoi d'autre à vérifier.

Répondre

1

essayez ceci:

SELECT s.spid 
FROM master.dbo.sysprocesses s 

Cependant, master.dbo.sysprocesses et son point de vue de la compatibilité sys.sysprocesses sont dépréciée, donc utilisez ceci:

select session_id from sys.dm_exec_sessions 

voir: Mapping System Tables to System Views (Transact-SQL)

0

Essayez d'utiliser:

select spid from sys.sysprocesses 

à la place. dbo.sysproceses est obsolète AFAIK.

+0

Cela ne résout en effet le problème ce script particulier. Cependant, j'aimerais vraiment savoir pourquoi cela ne fonctionnerait pas sur certaines configurations car cela semble affecter d'autres scripts. –

+0

Il me semble que quelqu'un avec des privilèges sysadmin en quelque sorte accidentellement borked la définition de votre vue dbo.sysprocesses à un moment donné ... –