0
我創建了一個遊標,它遍歷所有數據庫並顯示每個數據庫的1條記錄。sql遊標將結果插入表中
我希望將記錄插入到我可以查看它的1個表中。該查詢可能會改變這是爲什麼我不想爲特定查詢創建表結構並插入它。我想用「選擇爲」條款,但將在第二次失敗光標運行
DECLARE @DB_Name varchar(100)
DECLARE @Command nvarchar(200)
DECLARE database_cursor CURSOR FOR SELECT name FROM #DBNAME
OPEN database_cursor
FETCH NEXT FROM database_cursor INTO @DB_Name
WHILE @@FETCH_STATUS = 0
BEGIN
SELECT @Command = 'use [' + @DB_Name + '] Select '''+ @DB_Name + ''' ,'+
--Enter query below
'* from authentication where username like ''%[email protected]%'' and password = ''Rohan2410'''
-- print @Command
EXEC sp_executesql @Command
FETCH NEXT FROM database_cursor INTO @DB_Name
END
CLOSE database_cursor
DEALLOCATE database_cursor
你在這裏試圖做什麼並不完全清楚。我得到關於查看所有數據庫的部分。但之後就沒有意義了。你提到select into,但不在你的代碼中。真的,你不需要一個光標。您可以以不同的方式利用動態sql。如果你能解釋你想要的輸出,我會告訴你我在說什麼。 –
您不應該需要'Use db'語句。只需使用dbname.dbo.tablename語法來限定表名。 –
不要使用**「select into」**子句在你的情況下,「select into」子句會自動創建一個新表,因此下次查詢將失敗,因爲引擎想要創建的表名是已經存在。 通過插入臨時錶轉到另一種方法,然後在遊標結束後通過SELECT INTO將臨時表中的數據插入到新表中 –