sqlserver表循环,sqlserverfor循环

sqlserver sql代码循环问题

游标是sql中效率最低的,尽量不要使用游标,如果你的参数名可以自己定义的话就好办了,比如,@test1,@test2......@test10,定义成有规律的,那么可以通过拼参数名的方式

创新互联专业IDC数据服务器托管提供商,专业提供成都服务器托管,服务器租用,成都移动服务器托管成都移动服务器托管,成都多线服务器托管等服务器托管服务。

set @sql='update dbo.KY_ProjectResult set state=1 where Project_Result_ID='+‘@test’+cast((11-@count) as char(10))

SQLServer 创建表 时候 循环插入n 个字段?

动态的把你的sql拼出来,然后用exec()调用。

例如:

declare @str varchar(1000);

select @str='create table ttt(id1 int,id2 int,id3 int.....);'

exec(@str);

************

补充:

************

1、建一个表,保存你要追加的字段名和字段类型

如:create table t_tmp(id int IDENTITY(1,1) not null,col_name varchar(100),col_type varchar(100));

2、把你想要动态追加的字段和类型全写入表中

如:

insert into t_tmp(col_name,col_type) values('t1','int');

insert into t_tmp(col_name,col_type) values('t2','date');

insert into t_tmp(col_name,col_type) values('t3','varchar(100)');

insert into t_tmp(col_name,col_type) values('t4','char(100)');

3、生成动态建表语句,并创建表

declare @str varchar(2000)

set @str='create table ttt('

select @str=@str + col_name+' '+col_type+',' from t_tmp

set @str=substring(@str,1,len(@str)-1)+')'

select @str

exec(@str)

---

以上,希望对你有所帮助。

sqlserver 有几种循环

正常循环有两类循环,普通循环和游标循环

普通循环:while,for ,WHILE LOOP

游标循环:针对你select出来的值进行循环

除了上述那些还有复活形的多游标,嵌套循环等。

sqlserver存储过程何循环读表。

使用游标,如下

CREATE PROCEDURE proc_getalltable

AS

BEGIN

SET NOCOUNT ON;

DECLARE @tablename VARCHAR(100),@sql VARCHAR(1000)

DECLARE tablename CURSOR FOR SELECT tname FROM tablelist

OPEN tablename

FETCH NEXT FROM tablename INTO @tablename

WHILE @@FETCH_STATUS = 0

BEGIN

SELECT @sql = 'SELECT * FROM ' + @tablename

EXEC(@sql)

FETCH NEXT FROM tablename INTO @tablename

END

CLOSE tablename

DEALLOCATE tablename

END

GO


当前标题:sqlserver表循环,sqlserverfor循环
URL地址:http://pwwzsj.com/article/dsgsssp.html