SQL Server 2012 - 使用 openquery 插入链接服务器 table
SQL Server 2012 - Insert into linked server table using openquery
我有一个链接服务器 Remoteserver
,其中包含一个 table,它保存来自目录
的文件和文件夹名称
当我在远程服务器上时,我可以运行内置程序 (xp_dirtree
) 并填充 'files' table 但我需要做的是运行查询来自执行此操作的本地 SQL 服务器:
- 删除
Remoteserver
上 [Files]
table 的所有记录
插入来自存储过程的数据:
INSERT [Remoteserver].[dbo].[files] (subdirectory,depth,isfile)
EXEC master.sys.xp_dirtree '\Fileserver\DBBackup',1,1;
选择 'subdirectory' 列
我尝试了一些使用 openquery 的操作,我能够 select 现有记录但无法插入。
感谢任何帮助。
试试这个
INSERT INTO OPENQUERY([Remoteserver]
,'SELECT subdirectory, depth, [file] FROM [RemoteDB].[dbo].[files]')
EXEC master.sys.xp_dirtree '\fileserver\DBBackup', 1, 1;
或
INSERT INTO OPENQUERY([Remoteserver]
,'SELECT subdirectory,depth, [file] FROM [RemoteDB].[dbo].[files]')
select * from OPENQUERY([another_server_name], 'master.sys.xp_dirtree ''\fileserver\DBBackup\temp'', 1, 1');
但一般来说,如果 Fileserver
和 Remoteserver
可从本地计算机访问,则根本不需要使用 OPENQUERY。
INSERT INTO [Remoteserver].[RemoteDB].[dbo].[files] (subdirectory, depth, isfile)
EXEC master.sys.xp_dirtree '\Fileserver\DBBackup',1,1;
我有一个链接服务器 Remoteserver
,其中包含一个 table,它保存来自目录
当我在远程服务器上时,我可以运行内置程序 (xp_dirtree
) 并填充 'files' table 但我需要做的是运行查询来自执行此操作的本地 SQL 服务器:
- 删除
Remoteserver
上 插入来自存储过程的数据:
INSERT [Remoteserver].[dbo].[files] (subdirectory,depth,isfile) EXEC master.sys.xp_dirtree '\Fileserver\DBBackup',1,1;
选择 'subdirectory' 列
[Files]
table 的所有记录
我尝试了一些使用 openquery 的操作,我能够 select 现有记录但无法插入。
感谢任何帮助。
试试这个
INSERT INTO OPENQUERY([Remoteserver]
,'SELECT subdirectory, depth, [file] FROM [RemoteDB].[dbo].[files]')
EXEC master.sys.xp_dirtree '\fileserver\DBBackup', 1, 1;
或
INSERT INTO OPENQUERY([Remoteserver]
,'SELECT subdirectory,depth, [file] FROM [RemoteDB].[dbo].[files]')
select * from OPENQUERY([another_server_name], 'master.sys.xp_dirtree ''\fileserver\DBBackup\temp'', 1, 1');
但一般来说,如果 Fileserver
和 Remoteserver
可从本地计算机访问,则根本不需要使用 OPENQUERY。
INSERT INTO [Remoteserver].[RemoteDB].[dbo].[files] (subdirectory, depth, isfile)
EXEC master.sys.xp_dirtree '\Fileserver\DBBackup',1,1;