如何用数组向SQL中输入数据

如何用数组向SQL中输入数据,第1张

构造一个大的SQL语句呗,Insert into wer(A1,A2A1000) Values(@a1,@a2,@a1000)。里面有1000个参数,给参数数组循环赋值,然后执行就可以了。

这个字符串,你可以用循环来生成

string Sql,param;

Sql="";param="";

for(int i=1;i<=1000;i++)

{

Sql+="A"+iToString()+",";

param+="@a"+iToString()+",";

}

Sql="Insert into wer("+SqlSubstring(0,SqlLength-1)+") Values ("+paramSubstring(0,paramLength-1));

给这个Sql的参数数组赋值,然后执行这个SQL;

不过我记得2000下面,单个SQL命令最大长度为4K字节(记得不是太清楚了,你可以自己试试看),如果有1000个字段,光写字段名就超过4K字节了。

如果SQL语句太常,就需要拆分成两条,一条插入,并返回一个id,然后根据第二条update,或者你的参数中自己就带了一个id也可以。

-- 这样写,主要是修改了IF ELSE结构,以及对b自增的位置进行了恰当的调整与优化

DECLARE @b INT,@d INT;

SET @b=1;

SET @d=0;

WHILE @b<10

 BEGIN 

     IF (@b%2)=0 

         SET @d+=@b;

     SET @b+=1;

 END

PRINT @d;

CREAT PROCEDURE tester

AS

BEGIN

SET NOCOUNT ON;

DECLARE @userId varchar(50)

DECLARE @count int

SET @count = 0

SELECT @count = count() FROM UserService_User WHERE Account like '%111%'

WHILE @count > 0

BEGIN

SELECT @userId = Id FROM UserService_User WHERE Account like '%111%'

exec UserService_RemoveUserByUserId @userId

SET @count = @count -1

END

END

说明:

1、此存储过程在SQL SERVER 2005上测试通过,值得注意的是,循环体中,语句是使用BEGIN……END包括的,而不是网络上常说的WHILE ……END WHILE结构,其他的循环语句,如LOOP ……UNTIL……END LOOP也不能通过编译,也许是版本的问题,但在SQL SERVER2005中,循环体使用BEGIN……END就可以,而不能使用网络上常说的WHILE ……END WHILE结构。

2、循环体中 UserService_RemoveUserByUserId 是一个存储过程的名称,@userId为该存储过程的参数,如果有多个参数,使用“,”分开就可以了,这也是存储过程调用另一个存储过程的一种方法。

以上就是关于如何用数组向SQL中输入数据全部的内容,包括:如何用数组向SQL中输入数据、sql循环中不能赋值、SQL利用循环语句插入数据等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9754889.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存