Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Tsql T-SQL-将集合插入链接服务器上的多个受约束表中_Tsql_Sql Server 2016_Bulkinsert_Linked Server - Fatal编程技术网

Tsql T-SQL-将集合插入链接服务器上的多个受约束表中

Tsql T-SQL-将集合插入链接服务器上的多个受约束表中,tsql,sql-server-2016,bulkinsert,linked-server,Tsql,Sql Server 2016,Bulkinsert,Linked Server,所以,我在服务器“a”上有一个数据集,在链接服务器“B”上有两个表(“t1”、“t2”)。 我无法修改服务器“B”架构。 我试图实现的是:在[B].[t1]中插入前两个数据集(非标识)列,该列应生成标识索引值,然后在[B].[t2]中添加第二个也是非标识的列,该列包含应映射到[B].[t2]中相应行的MsgId列。 似乎我不能在链接服务器上使用OUTPUT或SCOPE_IDENTITY()(两者都不返回任何内容) 我的问题是:有没有一种方法可以在不修改服务器B的情况下将数据从服务器a添加到服务

所以,我在服务器“a”上有一个数据集,在链接服务器“B”上有两个表(“t1”、“t2”)。 我无法修改服务器“B”架构。 我试图实现的是:在[B].[t1]中插入前两个数据集(非标识)列,该列应生成标识索引值,然后在[B].[t2]中添加第二个也是非标识的列,该列包含应映射到[B].[t2]中相应行的MsgId列。

似乎我不能在链接服务器上使用OUTPUT或SCOPE_IDENTITY()(两者都不返回任何内容)

我的问题是:有没有一种方法可以在不修改服务器B的情况下将数据从服务器a添加到服务器B


我目前的解决方案涉及到游标和在远程服务器上创建存储过程,但我觉得我做得完全错误,并在这个过程中重新发明了轮子。另外,修改数据库结构是一个痛苦的过程,涉及大量的文书工作。

您要做的是ETL(提取、转换、加载),使用SSIS这样的工具有助于做到更干净、更易于维护。

如果您可以在链接服务器上创建存储过程,我认为这可以帮助您解决问题。