我在我的sql server 2008中添加了一个链接的服务器。我想从一个表和一个表值函数中获取数据驻留在我的链接服务器上,并通过以下方式将其添加到本地表中:低于给定的命名约定。SQL Server链接服务器加入
<server>.<database>.<schema>.<table>
但是,我的第一个问题是我需要从表中获取<server>
部分。所以,当我尝试这样做以下失败
Select * FROM @ServerNameVariable.database.dbo.myTable
任何想法,我怎么能与一个用户定义的变量完全合格的链接服务器的表名?
我的SP是如下
CREATE PROCEDURE TEST_SP
AS
BEGIN
DECLARE @NetworkDBName VARCHAR(255)
SET @NetworkDBName = '[MyLinkedServerName]'
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for procedure here
select * from @NetworkDBName + '.' + testDatabase.dbo.Invoice_tb
END
GO
你不需要'@'。 –
'SELECT name FROM sys.servers WHERE server_id> 0' - 您的链接服务器 – Devart
但'@'必须在用户定义的变量之前使用,否则SP将无法编译 – ItsZeus