只是为了显示一种不同的方式:
您可以使用链接服务器。
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
可以吗?