J'écris un proc stocké dans SQL Server 2008. Le code suivant:déclaration de verrouillage ne sera pas compilé avec INNER JOIN présente
SELECT @LastAccessed = cs.LastAccessed
FROM [int].ClientSessions AS cs INNER JOIN
dbo.Profiles AS p ON cs.ProfileID = p.ProfileID
WITH (XLOCK, ROWLOCK)
WHERE (p.ClientID = @ClientID)
... ne compilera pas, indiquant une erreur de syntaxe à XLOCK .
Si je supprime l'instruction INNER JOIN (ce qui est impossible parce que j'ai besoin de la jointure), alors ça va avec le XLOCK. Je ne vois pas quel est le problème.
Remarque: Je veux uniquement verrouiller la table [int] .ClientSessions, donc je me rends compte que ce n'est peut-être pas la meilleure approche.
Wow, ce n'était pas dans ma liste de deviner. Merci. – IamIC
Je suppose que le 2e AVEC est une faute de frappe. Je suis arrivé à compiler ce qui suit: SELECT \t \t @LastAccessed = cs.LastAccessed \t DE \t \t [int] .ClientSessions AS cs INNER JOIN \t \t \t \t dbo.Profiles AS p \t AVEC \t \t (XLOCK, ROWLOCK) \t \t \t \t SUR cs.ProfileID = p.ProfileID \t OÙ \t \t (p.ClientID = @ClientID) – IamIC
@IanC, désolé, oui, il était X-) Votre –