【发布时间】:2014-03-05 20:57:23
【问题描述】:
我正在编写一些动态 SQL(我对它很陌生),并试图自动更改可能存在于不同 SQL Server 2008 实例上的多个表。我的服务器已链接,我知道每个服务器的表存在,但是当我尝试运行下面的查询时,我得到“找不到对象...因为它不存在或您没有权限”
查询:
Alter Table [Server10].[Database2].[dbo].[documents] Add NewField int
如果我在 SSMS 中连接到服务器并删除服务器名称 (Server10),它就可以工作。
关于如何创建此查询的任何建议。谢谢
【问题讨论】:
-
我不这么认为,因为我可以使用相同的服务器路径在该表上运行选择
-
对于链接服务器属性,安全设置是什么?我通常不使用登录映射。连接将“使用登录名的当前安全上下文进行”。我使用 Windows 身份验证进行连接,并且我是两台服务器上的系统管理员,所以我没有任何限制。
-
我是通过 Windows 身份验证的管理员。如果我通过 SSMS 直接连接到该服务器,我可以创建新字段或删除它,因此我认为这不是我的用户权限。
-
这都是链接服务器的安全设置所描述的。您可能是连接到 ServerA 上下文中的管理员,但您可能不是连接到 ServerB 的链接服务器上下文中的管理员。例如,链接服务器可能正在使用模拟或特定于 ServerB 的安全上下文。
标签: sql sql-server tsql