Dans SSMS, je peux créer une variable temp globale dans un lot et l'utiliser dans un autre. Comme ceci:Tables temporaires globales avec SQLCMD
CREATE TABLE ##temp (col1 INT)
GO
DROP TABLE ##temp
GO
Avec SQLCMD, je crée une table temporaire globale dans un appel et il n'existe pas dans le second.
sqlcmd -S localhost -d tempdb -E -Q "create table ##temp (col1 int)"
sqlcmd -S localhost -d tempdb -E -Q "drop table ##temp"
Msg 3701, Level 11, State 5, Server VATLLXT7LGBARE2, Line 1
Cannot drop the table '##temp', because it does not exist or you do not have permission.
Une table temporaire globale n'est-elle pas supposée rester tant que le serveur n'est pas réinitialisé?
Il colle jusqu'à ce que vous, ou quiconque l'utilise en dernier, se déconnecte. SSMS est différent car la connexion est généralement persistante lorsque l'éditeur de requête est ouvert; SQLCMD se connecte et se déconnecte à chaque invocation. –
Il est également possible de créer des tables normales dans tempdb, et celles-ci ne sont pas supprimées automatiquement –