【发布时间】:2022-11-21 13:06:09
【问题描述】:
我需要使用创建的链接服务器在另一个数据库上执行sp_refreshview。
例如,我有链接服务器Demo_LinkedServer。在AdventureWorks 数据库中,我创建了一个表Demo_TBL,并在该表之上创建了一个名为VW_Demo_TBL 的视图。
现在,我在数据库Demo_Database 中。我如何使用链接服务器Demo_LinkedServer在AdventureWorks中执行sp_refreshview?
第一次尝试:
exec Demo_LinkedServer.AdventureWorks.dbo.sp_refreshview N'dbo.VW_Demo_TBL'.
我收到错误:
服务器“Demo_LinkedServer”没有为 RPC 配置。
第二次尝试:
SELECT * FROM OPENQUERY(Demo_LinkedServer, 'EXEC sp_refreshview N''dbo.VW_Demo_TBL''')现在我得到这个错误:
消息 11528,级别 16,状态 1,过程 sys.sp_describe_first_result_set,第 1 行 [批处理起始行 118]
无法确定元数据,因为过程“sp_refreshsqlmodule_internal”中的语句“EXEC %%TriggerEx(MultiName = @name).LockMatchID(ID = @objid, Exclusive = 1, NameSpaceClass = @ns)”不支持元数据发现。
【问题讨论】:
-
您是否能够在链接服务器中运行其他存储过程?使用 exec 命令?
标签: sql-server-2012 linked-server