
如何在sql server 2008中 批量地更新数据,就是一次性更新多个字段的同一行数据? 5
这个就是我遇到问题的截图。然后我的存储过程是:@tablenamevarchar(50),@Csqlvarchar(max),@snovarchar(50),@updat...
这个就是我遇到问题的截图。然后我的存储过程是:
@tablename varchar(50)
,@Csql varchar(max)
,@sno varchar(50)
,@updatesp varchar(100)
AS
BEGIN
declare @sql varchar(max)
set @sql='
update ['+@tablename+'] set ('+@updatesp+')=(select ('+@Csql+')) where 学号='''+@sno+''''
print(@sql)
exec(@sql) 展开
@tablename varchar(50)
,@Csql varchar(max)
,@sno varchar(50)
,@updatesp varchar(100)
AS
BEGIN
declare @sql varchar(max)
set @sql='
update ['+@tablename+'] set ('+@updatesp+')=(select ('+@Csql+')) where 学号='''+@sno+''''
print(@sql)
exec(@sql) 展开
3个回答
展开全部
你好!你写的“”update ['+@tablename+'] set ('+@updatesp+')=(select ('+@Csql+')) where 学号='''+@sno+''''”,就好比是set a,b,c,d,e=(f,g,h,i,j),这样肯定不能建立对应关系。我提供个思路给你:将传进来的列名分开,用循环去更新,一次只更新一列。希望能帮到你~
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你要把列的赋值分开写,如:
update adminManager set username ='a',password = '1234' where userid = 5
update adminManager set username ='a',password = '1234' where userid = 5
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
update 表名 set 列名 = 更新的值 where 条件
你按照这个就不会报错了
你按照这个就不会报错了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询