我想檢測MS SQL DB中以'NAV'開頭的數據庫。我使用此代碼試了一下:SQL錯誤 - 關鍵字'Database'附近的語法不正確
DECLARE @DBName NVARCHAR(MAX);
SET @DBName = (SELECT name FROM master.dbo.sysdatabases where name LIKE '%NAV%');
EXECUTE ('USE' + @DBName);
但我得到的錯誤信息:
Msg 156, Level 15, State 1, Line 1
Incorrect syntax near the keyword 'Database'.
知道什麼是錯的呢?
這樣做...'declare @sql varchar(4000)=('USE'+ @DBName); print(@sql)',你會發現你至少需要一個空間(假設查詢只返回一個結果)。在嘗試執行動態SQL之前打印動態SQL總是很好,因此您可以看到實際執行的內容。 – scsimon
您是否在使用'sa'來運行該查詢? – Alfabravo
有關SQL Server的動態SQL問題的強制鏈接:http://www.sommarskog.se/dynamic_sql.html –