跟進問題sp execute code如何循環使用sp_executesql
我想通過存儲在光標DBS名稱列表循環,我不知道在整合USE命令是什麼在起作用到SP執行命令,因爲我需要該語句來對付不斷變化的數據庫。
我試過下面的代碼,但是sp_executesql在@dbfullname上返回語法錯誤。 (在瞭解了更多sp_executesql的定義之後,我在想沒有辦法添加這個USE命令,那麼該怎麼做呢?任何指針?它是否需要在批處理中完成?)
declare @dbfullname varchar(60)
declare @name varchar(50)
DECLARE @userName1 varchar(20)
DECLARE @userexists bit
SET @userName1 = 'testUser'
WHILE @@FETCH_STATUS = 0
BEGIN
SET @dbfullname = N'MyDb' + @name
EXEC sp_executesql N'use @dbfullname; SET @userexists = CASE WHEN EXISTS(SELECT 1
FROM sys.database_principals
WHERE name = @userName1)
THEN 1 ELSE 0
END',
N'@userName1 varchar(20), @userExists bit output',
@userName1,
@userExists output
END
提示:使用合適的軟件(MySQL,Oracle,DB2,...)和版本(例如, '的SQL服務器2014'。語法和功能的差異往往會影響答案。 – HABO