SSMS更改表行不能在其他任何地方访问

时间:2017-11-21 16:52:57

标签: sql-server

我正在创建一个临时表来存储来自csv的数据,然后在创建新列之后更改表,以便按升序中的唯一编号标识每一行。

这被创建得很好,但我无法使用这些行号查询表。好像它没有设置好像。在SSMS上,当我使用新创建的列时,它会使用错误无效列名'columnName'对其进行红色排列,但我仍然可以查询数据库。

declare @loopNum INT
set @loopNum = 0

    CREATE TABLE #A
    (
        column1 BIGINT NOT NULL,
        column2 BIGINT NOT NULL,
    )

    DECLARE @command NVARCHAR(150)
    SET @command = just reads from file into temp table A. this works fine
    EXEC SP_EXECUTESQL @command

    ALTER TABLE #A
    ADD RowNumbers INT IDENTITY(1,1)
 --if i run a select * from #a, all 4 columns show perfectly
while @loopNum <= 5
begin
select * from #a where loopNum = RowNumbers -- doesn't return anything yet loop is going up one as 6 blank results are returned
set @loopNum = @loopNum + 1   
end

select语句无法识别“RowNumbers”,所以我不确定我是如何完成alter命令的。

这是我到目前为止所得到的。

Column 1 | Column 2 | RowNumbers
A        | B        | 1
C        | D        | 2

它只是没有循环它。

1 个答案:

答案 0 :(得分:1)

这里有几个问题。

一,你首先会得到一个空行,因为你声明@loopNum = 0而你的df3.csv循环从1开始。

二,您在WHILE中使用“loopNum”代替变量@loopNum。

Rextester:http://rextester.com/XJNML62761