簡體   English   中英

SQL腳本生成另一個[INSERT] SQL腳本

[英]SQL script to generate another [INSERT] SQL script

我有一個奇怪的SQL情況,在這種情況下,我需要創建一個將對數據庫A運行的SQL腳本,並且它將輸出另一個包含INSERT語句的SQL腳本,然后我可以對數據庫B運行該腳本並上傳數據(本質上是Export從A到B,但路途更長)。

我想知道是否有人對此提出建議,可以提出一種生成INSERT語句的方法,該語句將包含[Database A].[Table Student] ,然后可以將其上載到[Database B].[Table Student]

非常感謝。

您可以將student的值連接到一個插入字符串中,例如:

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

注意:例如,四個單引號用於在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

-您可以簡單地使用insert into語句

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

這是將數據從一個數據庫表插入另一數據庫表的一種方法

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

如果您可以訪問兩個數據庫,則可以在一個查詢中執行以下操作:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM