1

我有两个表,我添加了一个新列。列名是 LocationKey。每当我尝试在更改存储过程中使用该列时,我都会在下面收到一条错误消息。我回去复制粘贴列名。这是准确的!这是它需要在两张桌子上的地方。

 Msg 207, Level 16, State 1, Procedure usp_MY_Stored_procedure, Line 122
Invalid column name 'LocationKey'.

我已经用谷歌搜索了,我想出的任何东西都没有解决这个问题。我可能会错过什么?

我已阅读的链接:1.创建表后调用插入时出现“无效的列名”错误

  1. http://social.msdn.microsoft.com/Forums/sqlserver/en-US/87ef4b02-6a57-4cae-9e0c-bf705f3c2bec/invalid-column-name-after-adding-new-column

  2. http://www.mssqltips.com/sqlservertip/2591/troubleshooting-intellisense-in-sql-server-management-studio-2012/

我可以尝试进一步解决此问题的任何事情将不胜感激。

-- DROP LEADING DOUBLE QUOTE (and PhotoUrl column)
    INSERT INTO [table2](

        [Comment1]
        ,[Comment 2]
        ,[Comment 3]
        ,[Comment 4]
        ,[Name]
        ,[PhotoUrl]
        ,[LocationKey]

        )



    SELECT 
         [Comment1]
        , [Comment 2]
        , [Comment 3]
        , [Comment 4]
        , SUBSTRING([Name],1,100)-- Limit to 100 chars
        , [PhotoUrl]  -- varchar(MAX)
        , [LocationKey]


    FROM [table1]
4

3 回答 3

2

如果其他答案中的逗号问题只是您问题中的拼写错误,我会想到另外两个想法:

  1. 您的 SP 是否切换到可能具有相同表结构(但未更新)的不同数据库?
  2. 您是否有多个数据库副本(开发、生产等),并且您将该列添加到与您尝试更改 SP 的位置不同的服务器?

此外,您可以将 SELECT 语句复制并粘贴到新查询中,然后尝试运行它。这将告诉您无效列错误是来自 Table1 还是 Table2。

另一个想法 - 您是否可能通过视图查询,而不是直接查询表?如果未使用 SCHEMABINDING 定义视图,则需要刷新视图以显示新字段。

于 2013-08-13T15:09:47.347 回答
2

您需要更改 SQL,因为语法看起来不正确,试试这个...

INSERT INTO [table2](

        [Comment1]
        ,[Comment 2]
        ,[Comment 3]
        ,[Comment 4]
        ,[Name]
        ,[PhotoUrl]
        ,[LocationKey]

        )



    SELECT 
         [Comment1]
        , [Comment 2]
        , [Comment 3]
        , [Comment 4]
        , SUBSTRING([Name],1,100)-- Limit to 100 chars
        , [PhotoUrl]  -- varchar(MAX)
        , [LocationKey]


    FROM [table1]

编辑:基于评论

如果要对不同的环境进行颜色编码,可以使用此技巧http://evanon.net/blog/post/2011/04/16/Colour-coded-Environments-in-SQL-Server-Management-Studio-2008 .aspx

于 2013-08-13T15:04:40.370 回答
0

你的语法是错误的。删除前导逗号,添加括号。请参阅下面的更新代码。

INSERT INTO [table2]
(
  [Comment1]
 ,[Comment 2]
 ,[Comment 3]
 ,[Comment 4]
 ,[Name]
 ,[PhotoUrl]
 ,[LocationKey]
)

SELECT
  [Comment1]
 ,[Comment 2]
 ,[Comment 3]
 ,[Comment 4]
 ,SUBSTRING([Name],1,100)
 ,[PhotoUrl]
 ,[LocationKey]
FROM [table1];
于 2013-08-13T15:05:59.770 回答