mpi*_*e76 8 sql-server distributed-transactions sql-server-2008
我已经看到了关于如何在两个不同的SQL服务器上查询两个不同表的所有引用,我理解它是如何实现的.但是,该命令似乎不适用于使用##
.创建的临时表.
如果我在一台服务器上编写一个连接,并且它在该服务器上引用一个临时表,在另一台服务器上引用一个临时表,则SQL Server会假定因为##
它在命令中,它会自动查看本地服务器tempdb
,而不是远程服务器一.我此时也无法使用OPENROWSET
,因为该功能已被禁用,我必须获得批准才能重新启用.
所以我的问题是有一种方法可以重新配置这个命令以识别tempdb
要查看的内容吗?
SELECT *
FROM (##mytemptable1 Demog
INNER JOIN MyServer.tempdb.dbo.##mytemptable2 PeakInfo ON (Demog.SAMPLE_NO = PeakInfo.SampleNum) AND (Demog.JOB_NO = PeakInfo.JobNum) )
ORDER BY PeakInfo.JobNum, PeakInfo.SampleNum, PeakInfo.Replicate ,PeakInfo.Reinjection ,PeakInfo.PeakNameCustSort
Run Code Online (Sandbox Code Playgroud)
小智 19
尝试此操作从链接服务器查询全局临时表
SELECT * FROM OPENQUERY(linkedServerName, 'SELECT * FROM ##temp')
Run Code Online (Sandbox Code Playgroud)
MSDN http://msdn.microsoft.com/en-us/library/ms186986(v=sql.105).aspx表示全局临时表仅在 SQL Server 的特定实例上可见:
全局临时表在创建后对任何用户和任何连接都可见,并且在引用该表的所有用户与 SQL Server 实例断开连接时被删除。
此外,对远程全局临时表尝试的任何操作都会导致明确的错误消息:
SELECT * FROM LinkedServerName.TempDB.dbo.##GLOBTABLE
Run Code Online (Sandbox Code Playgroud)
Database name 'TempDB' ignored, referencing object in tempdb.
看起来答案是否定的,没有(简单)的方法。
归档时间: |
|
查看次数: |
10206 次 |
最近记录: |