【问题标题】:column names with periods on a 2008 linked server2008 链接服务器上带句点的列名
【发布时间】:2013-02-14 23:41:16
【问题描述】:

我正在使用 SQL Server 2005 并尝试从 SQL Server 2008 链接服务器中选择包含句点的列。

我已经查看了这篇文章:

Selecting a column with period in the column name SQL Server

但我没有遇到同样的错误。

这是代码

    INSERT INTO [Linked_Server].Database.dbo.Table
           ([Column_Name], [Column.Name])
    SELECT 
           [Column_Name], [Column.Name] FROM local_table

我可以从本地表中选择,但是当我尝试从链接服务器上的同一个表中选择相同的列时,我收到了这个错误:

    Msg 207, Level 16, State 1, Line 3
    Invalid column name 'Column.Name'.

编辑:修正了“[Column_Name)”的错字。然而,这只是在 stackoverflow 中的一个错字。 错字不是问题

【问题讨论】:

  • 您的括号(至少在您的帖子中)可能包含错字。
  • 你是对的。虽然它只是在帖子中。仍然遇到问题。
  • 我要问...你确定你的[Linked_Server].Database.dbo.Table 中有一个[Column.Name] 列吗?因为正是那条线触发了您的错误。
  • 是的,我是。我可以从实际服务器中选择该列,但不能通过链接服务器。这就是发帖的原因。我不知道为什么会不一致。
  • 您是否尝试将[...] 替换为"..."?至少对于有问题的名称。

标签: sql sql-server sql-server-2008 sql-server-2005 linked-server


【解决方案1】:

在 Column_Name 后的 ] 上替换 ) 并重试

INSERT INTO [Linked_Server].Database.dbo.Table
       ([Column_Name], [Column.Name])
SELECT [Column_Name], [Column.Name] FROM local_table

【讨论】:

  • 更改列名时,我在问题上输入错误...哎呀!这是我实际查询的格式。
  • 这不是问题的答案,它只是纠正我在帖子中的错字。
【解决方案2】:

看起来这是 SQL Server 2008 中链接服务器的一个已知问题。我在研究时看到了这个页面,但我没有看到底部的解决方法部分。

我最终将查询改为使用 OPENQUERY,现在它可以工作了。

http://support.microsoft.com/kb/972856

【讨论】:

    猜你喜欢
    • 2012-07-21
    • 2015-02-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多