sql - 如何使用 4 部分命名约定在 "updates statistics"作业中调用链接服务器?

标签 sql sql-server ssms

我正在集成服务器上设置作业以在我的客户端数据库上运行统计更新。

问题是更新统计语法不允许我调用一个由 4 部分组成的名称。

我想做这样的事情:

UPDATE STATISTICS [linked server].[database].[dbo].[table] 

WITH FULLSCAN

GO

但是我收到一条错误消息,指出已超出最大前缀数。

有谁知道如何解决这个问题?我真的没有选择将它本地放在我的客户端数据库中。

找到答案

感谢所有对此表示支持的人,但我实际上找到了一个非常酷的解决方法,希望它可以帮助其他人。
EXEC [linked_server].[database].[sys].[sp_executesql] N'UPDATE STATISTICS [dbo].[table] WITH FULLSCAN'

这可用于截断、触发器启用和禁用以及其他不允许跨链接服务器的 SQL 功能。

据我所知,它通过链接服务器传递语句而不是执行。

最佳答案

您可能不想绕过这个限制,因为在分布式事务中这样做似乎是不明智的 ;-)。但你很幸运。您已经在使用 SSIS。只需让 SSIS 连接到正确的服务器并执行 UPDATE STATISTICS通过该直接/本地连接。

此外,由于您使用的是 SSIS,它具有更新统计信息的任务:

  • Update Statistics Task (Maintenance Plan)
  • Update Statistics Task
  • 关于sql - 如何使用 4 部分命名约定在 "updates statistics"作业中调用链接服务器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26062346/

    相关文章:

    sql - SQL Server中的自动递增主键(长唯一代码)

    sql - 使用 TSQL 按字段值限制结果

    sql-server - 什么时候压缩 Sql Server 数据库?

    c# - 在哪里可以找到有关为 SQL Server Management Studio 创建插件的信息?

    sql-server - SQL Server 管理工作室 : F4 equivalent Toad shortcut

    php - 找不到存储过程中的错误

    java - SQL语句插入时出错

    sql - SSMS 脚本选项

    SQL 为什么 SELECT COUNT(*) , MIN(col), MAX(col) 比 SELECT MIN(col), MAX(col) 更快

    python - 从 pyodbc 运行查询比从 SSMS 运行查询花费的时间长得多