【发布时间】:2010-10-22 07:36:57
【问题描述】:
我在 SQL Server 2008 R2 中将本地服务器 pblack 添加为链接服务器
---1)
EXEC master.dbo.sp_addlinkedserver @server = N'pblack',
--'pblack' is my localhost
@srvproduct=N'SQL Server'
并成功执行2)和3):
--2)
sp_MSforeachtable @command1="EXEC sp_spaceused '?'"
--3)
SELECT * INTO #temp
FROM OPENQUERY(pblack,'exec sp_who')
SELECT * FROM #temp
4)
如何将 2) 插入 3) 而不是“exec sp_who”。我无法正确引用表达式...
为什么我不能在 SQL Server 2008R2 中链接本地或本地主机?
更新:
目的是进一步修改SELECT,例如输出max(data)——找到最大size的表
更新2:
SELECT * INTO #temp
FROM OPENQUERY
(
pblack,
'EXEC sp_MSforeachtable @command1= '' EXEC sp_spaceused ''''?'''' '' '
)
给出错误:
Msg 208, Level 16, State 1, Procedure sp_MSforeach_worker, Line 102
Invalid object name '#qtemp'.
我尝试连接字符串 + 使用 temp varchar 变量接收相同的错误。
我怀疑问题更深,因为“选择”似乎不是来自一个行集,而是来自多个行集?
好吧,我可以沉迷于研究代码,但我希望能找到一些(神奇的)解决方法。
【问题讨论】:
标签: sql sql-server stored-procedures dynamic-sql linked-server