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将临时表中的数据插入到新表中 –