เพียงเพื่อแสดงวิธีอื่น:
คุณสามารถใช้เซิร์ฟเวอร์ที่เชื่อมโยง
SELECT *
INTO without_id
FROM [linked_server].[source_db].dbo.[with_id];
คุณสามารถสร้างเซิร์ฟเวอร์ที่ลิงก์ไปยังเซิร์ฟเวอร์ภายในโดยใช้สิ่งนี้ชั่วคราว:
DECLARE @LocalServer SYSNAME
SET @LocalServer = @@SERVERNAME;
EXEC master.dbo.sp_addlinkedserver @server = N'localserver'
, @srvproduct = ''
, @provider = 'SQLNCLI'
, @datasrc = @LocalServer;
EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'localserver'
, @useself = N'True'
, @locallogin = NULL
, @rmtuser = NULL
, @rmtpassword = NULL;
ณ จุดนี้คุณจะต้องเรียกใช้select * intoโค้ดโดยอ้างอิงlocalserverเซิร์ฟเวอร์สี่ลิงก์ชื่อ:
SELECT *
INTO without_id
FROM [localserver].[source_db].dbo.[with_id];
หลังจากนั้นให้ทำความสะอาดlocalserverเซิร์ฟเวอร์ที่เชื่อมโยงด้วยสิ่งนี้:
EXEC sp_dropserver @server = 'localserver'
, @droplogins = 'droplogins';
หรือคุณสามารถใช้OPENQUERYไวยากรณ์
SELECT *
INTO without_id
FROM OPENQUERY([linked_server], 'SELECT * FROM [source_db].dbo.[with_id]');
JOIN (SELECT 1) AS dummy ON 1 = 1งานได้เช่นกัน?