2014-10-28 97 views
0

我正在将设计不佳的表中的读取迁移到sqlserver 2008中新标准化的表中。
我的目标是获取Source表存储中的总记录数在一个变量中。循环遍历每一行并插入到目标表中。我做了类似的帖子众多搜索:将数据从非标准化数据库迁移到井设计数据库

1How do I insert a record from one table into another table?Inserting into database by reading another

但能够从SQL Examples
现在我得到这个错误,修改代码:

Msg 207, Level 16, State 1, Line 5 
Invalid column name 'Num_Row_in_table 

代码:

DECLARE @i INT 
DECLARE @Num_Row_in_table int 

SET @i=1 
WHILE(@i <= Num_Row_in_table) 
BEGIN 
Insert into Destinationtable (FirstName,LastName,Photo,SN) 
    (
Select FirstName,LASTNAME,Photo,SN From MyDB.dbo.sourcetable 
) 
SET @[email protected]+1 
END 
+0

不应该在'Num_Row_in_table'前加一个'@'吗? 'WHILE(@i <= @Num_Row_in_table)' – 2014-10-28 10:28:14

+0

@BenjaminDiele,当我删除,我得到这个错误:消息155,15级,状态2,行3 'int'不是一个公认的CURSOR选项。 – lern 2014-10-28 10:30:31

回答

1

For获得游标;只是这样做:

Insert into Destinationtable (FirstName,LastName,Photo,SN) 
Select FirstName,LASTNAME,Photo,SN From MyDB.dbo.sourcetable