怎么用sql语句循环添加数据?

--保存分类权限
ALTER PROC [dbo].[CH_FRM_DeleteAndInsertCategoryAuthorityInfo]
(
@Id varchar(36),
@CategoryId varchar(36),
@RoleOrUserId varchar(36),
@LastUpdateUserId varchar(36)
)
as
begin
BEGIN tran TranStart
SAVE tran FirstPoint
DELETE FROM dbo.CH_FRM_CategoryAuthority WHERE RoleOrUserId=@RoleOrUserId
--在这个地方需要循环添加数据
Insert into dbo.CH_FRM_CategoryAuthority(Id, CategoryId, RoleOrUserId, LastUpdateUserId)
values(@Id,@CategoryId,@RoleOrUserId,@LastUpdateUserId)

COMMIT TRANSACTION TranStart
if @@ERROR <> 0
begin
rollback tran FirstPoint
end
else
begin
commit tran TranStart
END
END

"--在这个地方需要循环添加数据"是添加什么数据?看你的过程情况,传入参数只是一条数据,如果是需要勾连其他表的也不一定需要循环,毕竟循环的效率不高。追问

不是一条数据 而是多条数据 动态添加数据

追答

怎么一个动态伐?最好能详细一点。如果只是在你写的过程里面取值可以考虑用临时表,然后根据临时表循环insert

追问

就是从程序中得到的数据 根据 如:1,2,3,4
2,3,4,5......................

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-03-16
for循环
例如:for(int i=0;i<5;i++){ //5为你需要的循环数组 比如权限
Insert into dbo.CH_FRM_CategoryAuthority(Id, CategoryId, RoleOrUserId, LastUpdateUserId)
values(@Id,@CategoryId,@RoleOrUserId,@LastUpdateUserId)
}追问

大哥 我不知道有几条信息啊 是动态的

追答

放到list里循环取出来

本回答被提问者采纳
第2个回答  2011-03-17
;//将数组组成字符串 ,分隔符为','
$ele="'".$ele."'";这样$ele就像是‘a’,'b','c'的形式了,然后组合进insert语句就可以了