我正在创建一个临时表来存储来自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
它只是没有循环它。
答案 0 :(得分:1)
这里有几个问题。
一,你首先会得到一个空行,因为你声明@loopNum = 0而你的df3.csv
循环从1开始。
二,您在WHILE
中使用“loopNum”代替变量@loopNum。
Rextester:http://rextester.com/XJNML62761