用于生成另一个[INSERT] SQL脚本的SQL脚本

时间:2017-11-06 09:08:18

标签: sql sql-server database

我有一个奇怪的SQL情况,我需要创建一个我将针对数据库A运行的SQL脚本,它将输出另一个包含assertThat(parentDecisionGroups, hasItem( both(hasProperty("id", equalTo(decisionGroup1.getId()))). and(hasProperty("ownerDecision", equalTo("decision1")))); 语句的SQL脚本,然后我可以对数据库B和上传数据(主要是从A到B的导出,但更长的路径)。

我想知道是否有人为此工作过,可以建议一种方法来生成包含INSERT数据的INSERT语句,然后将其上传到[Database A].[Table Student]

非常感谢。

4 个答案:

答案 0 :(得分:1)

您可以将student中的值连接到插入字符串,如:

SELECT concat('Insert INTO Students VALUES(', Col1,', ', '''', Col2, '''', ')')
     AS [Details]
     FROM Student
     WHERE ...

N.B四个单引号是在varchar列之前和之后创建单引号。

要从中生成新的SQL脚本,我要创建一个cmd文件,其中包含:

SET SERVER=YOUR_SERVER
SET DATABASE=YOUR_DB

sqlcmd -S %SERVER% -d %DATABASE% -h -1 -i Script.sql -o NewScript.sql -W

答案 1 :(得分:0)

- 您可以简单地使用insert into statement

INSERT INTO [Database B].[Table Student]
SELECT * FROM [Database A].[Table Student] 
WHERE StudentID NOT IN (SELECT  StudentID FROM  [Database B].[Table Student])

答案 2 :(得分:0)

这是将数据从一个数据库表插入到其他数据库表的一种方法

INSERT INTO [DestinationDB].[dbo].Student
SELECT * FROM [SourceDB].[dbo].Student
GO

答案 3 :(得分:0)

如果您可以访问这两个数据库,则可以在一个查询中执行此操作:

INSERT INTO [Database A].[Table Student]
OUTPUT inserted.*
INTO [Database B].[Table Student]
SELECT *
FROM [newdata];