这是将在 column1 中的数据示例
Column1
Test1
test2
test3
然后我运行这个查询
Declare @Id uniqueidentifier
DECLARE db_cursor CURSOR FOR
SELECT Id
FROM DB1.table
WHERE Column1 is not null
OPEN db_cursor
FETCH NEXT FROM db_cursor INTO @id
WHILE @@FETCH_STATUS = 0
BEGIN
update DB1.table
set Column1 = (select top(1) Column2 from DB2.table order by newid())
where Id = @id
FETCH NEXT FROM db_cursor INTO @id
END
CLOSE db_cursor
DEALLOCATE db_cursor
这是我得到的输出
Column1
tom
jack
bob
我创建了这段代码,它将 DB1 表中的列替换为 DB2 表列数据。当我在 sql server 代理上将其作为作业运行时,这可以正常工作。
我想运行相同的查询来更改具有相同列的更多数据库。所以 FROM 查询我想添加更多的数据库,如 From DB1.table、DB2.table、DB3.table...
没有游标它就无法工作,因为它会像这样在更新后复制值。
column1
tom
tom
tom