Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.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
Sql server 2008 SQL Server 2008 R2作业步骤链接服务器登录失败_Sql Server 2008_Linked Server_Data Transfer_Sql Job - Fatal编程技术网

Sql server 2008 SQL Server 2008 R2作业步骤链接服务器登录失败

Sql server 2008 SQL Server 2008 R2作业步骤链接服务器登录失败,sql-server-2008,linked-server,data-transfer,sql-job,Sql Server 2008,Linked Server,Data Transfer,Sql Job,我每天需要调一张桌子。表名每天都在变化,所以我应该使用脚本来获取表名 有一个作业步骤,它将数据从sourceTable传输到使用T-SQLquery创建的destinationTable。sourceTable和destinationTable位于不同的服务器中。链接服务器工作正常 如果我在SQLServerManagementStudio中执行相同的查询,它就可以正常工作。但在这一步执行作业时,我看到以下消息: 以用户身份执行:NT AUTHORITY\SYSTEM。用户“NT”登录失败 授权

我每天需要调一张桌子。表名每天都在变化,所以我应该使用脚本来获取表名

有一个作业步骤,它将数据从sourceTable传输到使用
T-SQL
query创建的destinationTable。sourceTable和destinationTable位于不同的服务器中。链接服务器工作正常

如果我在SQLServerManagementStudio中执行相同的查询,它就可以正常工作。但在这一步执行作业时,我看到以下消息:

以用户身份执行:NT AUTHORITY\SYSTEM。用户“NT”登录失败 授权\匿名登录”。步骤失败了

这两个sql Server都是2008 R2版本,并且彼此链接

您可以建议使用其他一些方法,而不是使用T-SQL

任何帮助都将不胜感激。

这是因为SQL server存在“2跳”问题。 我可以通过两种方式解决此问题: 1.仍在使用链接服务器:在远程服务器上创建具有SQL server身份验证的用户,并授予所需的所有权限。然后打开链接服务器属性并将您的帐户映射到您刚刚创建的用户,如下所示:

之后,您将能够运行脚本

  • 使用openrowset:

    选择一个* 从OPENROWSET('SQLNCLI','Server=;Trusted_Connection=yes;'), “选择*from.dbo.”)作为


  • 我无法用链接服务器解决此问题

    我没有使用链接服务器,而是使用以下步骤:

  • 将x重命名为x_temp
  • 使用SSIS包(比链接服务器查询快得多)将所有数据从x_temp移动到其他服务器
  • 将x_temp重命名为x_dd_mm_yyyy

  • 谢谢@Vitality的回答。你的答案看起来不错,但我已经解决了我的问题,没有链接的服务器。