2014-03-28 44 views
0

我在模式“ID”中的链接服务器(托管服务器)上有一个名为“Application”的表。 我正在尝试使用sp_help查看相同的详细信息。在链接服务器上调用sp_help

但我无法做到这一点。 问题是: 1. sp_help在架构dbo中。 (很明显!) 2.但我的表在另一个架构中名为ID。 (例如select * from ID.Application)

  • 我已经将链接的服务器添加到我的本地sql server管理工作室。 并试图:

    1. exec [198.198.198.198].[sms].[dbo].sp_help applicantion

    2. exec [198.198.198.198].[sms].[dbo].sp_help id.applicantion

    3. exec [198.198.198.198].[sms].[dbo].sp_help sms.id.applicantion

'短信' 是我的链接服务器上的数据库。

结果:语法错误。

我想:SQL using sp_HelpText to view a stored procedure on a linked server

但我的问题是2个不同的架构。

有什么建议?

回答

3

这是行不通的?

exec [198.198.198.198].[sms].[dbo].sp_help 'id.applicantion' 
+0

太棒了!引号''解决了这个问题。谢谢。 但通常sp_help没有引号。为什么在远程服务器上需要引号? – Aki

+0

根据http://technet.microsoft.com/en-us/library/ms187335.aspx,语法是:sp_help [[@objname =]'name']; SQL Server有时候太宽容了。有时候不是:) – dean

+0

@Aki通常,'sp_help'需要'nvarchar'作为输入参数,所以应该使用引号,即使在某些情况下它可以在没有引用的情况下工作。因为远程服务器,这里没有必要引用这些引用,但是由于有一个模式名称。没有报价的'exec sp_help id.applicantion'也不能在本地服务器上工作。 –