[英]Insert Data From One Server To Another?
如果我想在 SQL Server 中運行此類查詢,如何從我連接到另一台服務器的服務器執行相同的查詢?
我嘗試添加“[ServerName1]”。 在“[DatabaseName1].[dbo]...”和“[ServerName2]”之前。 在“[DatabaseName2].[dbo]...”之前,但這似乎不起作用。
INSERT INTO [DatabaseName1].[dbo].[TableName]
([FieldName])
SELECT [FieldName] FROM [DatabaseName2].[dbo].[TableName]
這可能嗎?
是的,您會在整個對象名稱的其余部分之前使用服務器名稱,例如:
myserver.mydatabase.dbo.mytable
但是,您首先必須設置鏈接服務器。 在 BOL 中查找鏈接服務器。
如果您啟用了即席分布式查詢,則可以使用OPENDATASOURCE 。 設置鏈接服務器是另一種選擇。 不確定每種方法的優缺點。
INSERT INTO [DatabaseName1].[dbo].[TableName]
SELECT FieldName
FROM OPENDATASOURCE('SQLNCLI',
'Data Source=Server\InstanceName;Integrated Security=SSPI')
.DatabaseName2.dbo.TableName
最好的方法是在兩者之間創建一個“鏈接服務器”。 您將需要適當的權限才能執行此操作。
那么這只是使用您的鏈接服務器名稱訪問數據庫的問題。
例如: [linkedserver].databasename.dbo.tablename
要創建鏈接服務器,請轉到服務器對象-> 右鍵單擊鏈接服務器-> 單擊“新鏈接服務器”。
在 SSMS 中,轉到查詢 -> 'SQLCMD 模式'
DECLARE @VERSION VARCHAR(1000)
:CONNECT Soruce_Server_Name
SELECT @@VERSION AS [SQL_VERSION]
INTO
:CONNECT Destination_Server_Name
[MSSQLTips].[dbo].[TEST]
現在在目標服務器上,執行您的選擇命令來檢查您的輸出。 例如
SELECT * FROM [CloverInfotech_DB].[dbo].[TEST]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.