【问题标题】:Creating a T-SQL temp table on another server machine在另一台服务器计算机上创建 T-SQL 临时表
【发布时间】:2010-08-18 17:40:51
【问题描述】:

我正在使用 SQL 查询分析器从一台机器 (A) 上的数据库构建报告,并且我想在另一台机器 (B) 上的数据库服务器上创建一个临时表并加载数据来自机器 A。

更具体地说,我有一个在机器 A (machine.a.com) 上运行的报告,从模式 tst 中提取。使用 SQL 查询分析器,我登录到 machine.a.com 上的服务器,然后可以访问 tst 架构:

USE tst;
SELECT *
FROM prospect;

我想从这个查询窗口创建一个临时表,只是我希望它建立在另一台机器上(称为 machine.b.com)。我会为此使用什么语法?我的猜测是这样的:

CREATE TABLE machine.b.com.#temp_prospect_list(name varchar(45) Not Null, id decimal(10) Not Null);

然后我想用类似的东西加载这个新表:

INSERT INTO machine.b.com.#temp_prospect_list VALUES (
    USE tst;
    SELECT *
    FROM prospect; );

【问题讨论】:

  • 我认为您误解了临时表是什么。它们仅对当前会话有效。即使你能做到,我很确定它不会完成你想要的。使用 REAL 表就有意义了。
  • 我可以使用真正的桌子作为替代方案。语法有很大不同吗?我以为要创建一个永久表,您只需使用不带 # 符号前缀的表名...

标签: tsql temp-tables


【解决方案1】:

在 T-SQL 中访问远程服务器的语法是使用以下内容完全限定任何表名(必要时包括括号):

[LinkedServer].[RemoteDatabase].[User].[Table]

例如,要在一台服务器上运行 SELECT 语句来访问另一台服务器上的表:

SELECT * FROM [machine.b.com].tst.dbo.table7;

【讨论】:

    猜你喜欢
    • 2018-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多