sql 中循环语句中的set怎么复制变量

declare @i int
set @i=1
declare @MeterID varchar(14)
set @MeterID = 'R00001C0010'
declare @MeteID int
set @MeteID=205
while @i<=4
begin
insert into dbo.T_ST_MeterUseInfo(F_MeterID,F_BuildID,F_MeterName,F_MeterName,F_CollectionID,F_MeterAddrCode_X,F_EnergyItemCode,F_MeterAddr1,F_MeterAddr2,F_MeterAddr3,F_Rate,F_IsCircuitEnd,F_State)
values(@MeterID,'生物楼205','R00001C001','37010010004','R00001C00102','地址码','01000','生物楼205','0010020205',null,'-1','1','1')
set @MeteID=@MeteID+1
set @MeterID =@MeterID+@MeteID
set @i =@i+1
end

消息 264,级别 16,状态 1,第 9 行
在 SET 子句中多次指定了列名 'F_MeterName'。在同一 SET 子句中不得为一个列分配多个值。请修改 SET 子句,以确保一个列仅更新一次。如果 SET 子句更新了某视图的多列,那么列名 'F_MeterName' 可能会在该视图定义中出现两次。

第1个回答  2011-03-23
首先insert 语句中的列名F_MeterName出现了两次;
其次,循环体中的set @MeterID = @MeterID + @MeteID是错误的,@MeteID是int型的。应写成set @MeterID = @MeterID + cast(MeteID as varchar(5))
还有就是@i 这个变量是做什么用的?在脚本中没有什么意义呀。
希望有所帮助本回答被提问者和网友采纳
第2个回答  2011-03-23
错误是说你的Insert语句里,使用了2次'F_MeterName'字段
insert into dbo.T_ST_MeterUseInfo(F_MeterID,F_BuildID,F_MeterName,F_MeterName
在Insert语句里,一个字段只能出现一次

sql 中循环语句中的set怎么复制变量
首先insert 语句中的列名F_MeterName出现了两次;其次,循环体中的set @MeterID = @MeterID + @MeteID是错误的,@MeteID是int型的。应写成set @MeterID = @MeterID + cast(MeteID as varchar(5))还有就是@i 这个变量是做什么用的?在脚本中没有什么意义呀。希望有所帮助 ...

sql语句如何将一个表中符合条件的数据复制到另一个表中
先把表Gouwu_Content 的 ClassID=8 内容删除 delete from Gouwu_Content where ClassID=8 再插入 insert Gouwu_Content (select 8,字段1,字段2...from Wayinfo_Content where ClassID=23 )--8所占的是ClassID字段,就是后面的查询把ClassID字段直接写8 ...

Sql中的set和select赋值方式的区别
1、SELECT可以在一条语句里对多个变量同时赋值,而SET只能一次对一个变量赋值,如下:复制代码 代码如下:SELECT @VAR1='Y',@VAR2='N'-- 而SET要达到同样的效果,需要:SET @VAR1='Y'SET @VAR2='N'\/ 说到这个,SQL内置的变量:@@ERROR 和 @@ROWCOUNT必须要在一句SQL语句中捕获。如果用set分...

sql中的存储过程set是什么意思
SQL 语句里Update...set连用是用于修改表中的数据,set是将新值更新到指定列中。Update 语句用于修改表中的数据。语法:UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值;例如下句是更新某一行中的一个列,为 lastname 是 "Wilson" 的人添加 firstname:UPDATE Person SET FirstName = ...

sql server 里有循环语句吗 没有请看描述
set @i=@i+1 end WHILE 设置重复执行 SQL 语句或语句块的条件,只要指定的条件为真,就重复执行语句,可以使用 BREAK 和 CONTINUE 关键字在循环内部控制 WHILE 循环中语句的执行。语法 WHILE Boolean_expression { sql_statement | statement_block } [ BREAK ]{ sql_statement | statement_block }...

SQL的问题 set后面怎么能改成取范围值呢
写变量的话,可以通过字符串拼接的方式来实现。举例:sql="update tablename set usernmae='"+$username+"'";解释:以上语句就是传入一个$username参数,之后形成一个$sql字符串。备注:之后可以通过execute immediate sql来动态的执行此sql语句。

如何将sql数据库中一列中的值复制到另一列
1、创建测试表,插入数据:create table test(id int,name varchar(10),name1 varchar(10))insert into test values (1,'a','s')insert into test values (2,'b','w')insert into test values (3,'c','x')数据如下:2、现在要将name1的内容更改为name中的内容,可用如下语句:update ...

sql的while嵌套循环,请问我执行了之后怎么数据库中没有变化呢?在线等啊...
你初始化了@i,设置@i的值是6,下面的条件是while @i<6 ,6不会小于6的,所以下面的语句都不会执行。SET @i=6 WHILE @i<6 BEGIN SET @j=3 WHILE @j<3 BEGIN 这里应该是这样吧:SET @i=0 WHILE @i<6 BEGIN SET @j=0 WHILE @j<3 BEGIN ...

SQL 语句里set是什么意思啊
SET是SQL Server 中对已经定义的变量赋值的方式,经常与update语句一起使用。语法:UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值 例子如下:update A set name=小张 where name =张三 \/\/将小张的姓名改为张三 update A set name=小王 where name =王五 \/\/将小王的姓名改为王五 ...

SQl 里面 我把 SQl查询语句写在一个临时变量里面,我该如何调用该变量来...
set@SQL=('select * from '+@TableName+' where BatCode='+@batcode)改为 set @SQL=('select * from '+@TableName+' where BatCode='''+@batcode+''')BatCode 应该是字符串类型。

相似回答