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' 可能会在该视图定义中出现两次。 展开
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' 可能会在该视图定义中出现两次。 展开
2个回答
展开全部
首先insert 语句中的列名F_MeterName出现了两次;
其次,循环体中的set @MeterID = @MeterID + @MeteID是错误的,@MeteID是int型的。应写成set @MeterID = @MeterID + cast(MeteID as varchar(5))
还有就是@i 这个变量是做什么用的?在脚本中没有什么意义呀。
希望有所帮助
其次,循环体中的set @MeterID = @MeterID + @MeteID是错误的,@MeteID是int型的。应写成set @MeterID = @MeterID + cast(MeteID as varchar(5))
还有就是@i 这个变量是做什么用的?在脚本中没有什么意义呀。
希望有所帮助
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询