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

declare@iintset@i=1declare@MeterIDvarchar(14)set@MeterID='R00001C0010'declare@MeteIDi... 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' 可能会在该视图定义中出现两次。
展开
 我来答
piachangchaed
2011-03-23
知道答主
回答量:28
采纳率:0%
帮助的人:21.4万
展开全部
首先insert 语句中的列名F_MeterName出现了两次;
其次,循环体中的set @MeterID = @MeterID + @MeteID是错误的,@MeteID是int型的。应写成set @MeterID = @MeterID + cast(MeteID as varchar(5))
还有就是@i 这个变量是做什么用的?在脚本中没有什么意义呀。
希望有所帮助
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ThinkIBM
2011-03-23 · TA获得超过5289个赞
知道大有可为答主
回答量:3263
采纳率:0%
帮助的人:5479万
展开全部
错误是说你的Insert语句里,使用了2次'F_MeterName'字段
insert into dbo.T_ST_MeterUseInfo(F_MeterID,F_BuildID,F_MeterName,F_MeterName
在Insert语句里,一个字段只能出现一次
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式