Sql server 使用循环或数组将数据从一个表插入到另一个sql
我试图将数据从一个表插入另一个表(从表[PPRS]插入表[Verify]),其中PPRS中的标题与表[Master]中的标题相同。有人建议我使用循环或数组来插入数据,而不是硬编码,所以我先尝试了循环 这是我的密码:Sql server 使用循环或数组将数据从一个表插入到另一个sql,sql-server,Sql Server,我试图将数据从一个表插入另一个表(从表[PPRS]插入表[Verify]),其中PPRS中的标题与表[Master]中的标题相同。有人建议我使用循环或数组来插入数据,而不是硬编码,所以我先尝试了循环 这是我的密码: Declare @counter int declare @total int set @counter = 0 SELECT @total = Count(*) FROM PPRS while @counter <= @total begin
Declare @counter int
declare @total int
set @counter = 0
SELECT @total = Count(*) FROM PPRS
while @counter <= @total
begin
set @counter += 1
insert into [Verify]
select [Task_ID],
[Project_StartDate] ,
[PPR_Caption],
[Date]
FROM PPRS
where [PPR_Caption] in (SELECT [Caption] from MasterRecords)
end
Declare@counter int
声明@total int
设置@counter=0
从PPRS中选择@total=Count(*)
而@counter这将插入PPRS中标题位于主记录中的所有记录。不需要循环
insert into [Verify]
select [Task_ID], [Project_StartDate] , [PPR_Caption], [Date]
FROM PPRS
where [PPR_Caption] in (SELECT [Caption] from MasterRecords);
Insert应该足以满足您的需求,不需要loopSQL是一种基于集合的语言。插入数据不需要循环。您只需插入一个INSERT。。选择
。如果该循环起作用,将导致重复的条目,因为它总是执行相同的查询。顺便说一句,如果要检索插入的行数,请使用@@ROWCOUNT
0行inserted
表示运行INSERT
语句,但找不到匹配的记录。您可能应该发布这两个表的模式和测试数据。如果只运行查询的SELECT
部分,会发生什么情况?我之所以认为应该使用循环/数组,是因为我有一个网页,用户可以使用excel电子表格将数据上载到[PPRS]表,而我想在存储过程中使用该数据。这就是为什么我希望上传到[PPRS]表的数据插入到[Verify]表中。如果您希望插入PPRS表中的所有数据,那么这个查询就足够了。如果您只想插入验证表中不可用但PPRS表中存在的数据,则需要另一个查询,请使用表结构和示例输入输出阐明您的要求