Bra*_*don 18 t-sql sql-server-2005
我试图不写一个应用程序来做到这一点,同时改善我的SQL mojo ...
假设我在一个数据库表中Database1.dbo.MyTable包含以下列的数据:
这些行有数千个.
在Database2.dbo.MyOtherTable我有一个略有不同的架构,让我们说:
我想从中获取数据Database1.dbo.MyTable,并将每行的数据用作INSERT Database2.dbo.MyOtherTable.
我的猜测是我必须在while循环中建立一个游标,但不确定这样做的确切语法,或者是否有更好的方法.什么是最好的技术/语法用于此?
编辑:这是我最终使用的(本例更改了字段),除了确保在插入之前存在键时工作得很好:
INSERT INTO Database2.dbo.MyOtherTable (MyKey, MyValue)
SELECT ObjectType, ObjectKeyID FROM Database1.dbo.MyTable
WHERE ObjectType LIKE 'Widget' AND ObjectKeyID > 0 AND ObjectKey IN (SELECT UserAccountID FROM MyUsers)
Run Code Online (Sandbox Code Playgroud)
Mit*_*eat 34
你可以(如果可能的话)避免使用游标:
INSERT INTO Database2.dbo.MyOtherTable (MyKey, MyValue)
SELECT ObjectKeyID, ObjectType FROM Database1.dbo.MyTable
Run Code Online (Sandbox Code Playgroud)
您可以执行跨数据库插入:
insert Database2.dbo.MyOtherTable (... columns ...)
select ...
from Database1.dbo.MyTable
Run Code Online (Sandbox Code Playgroud)