存储过程贴出来呀?
另外再写一个存储过程。
很明显你的存储过程写的有问题。
在存储过程中使用类似下面的SQL语句
Update table1 set column1=N'test' --where ID=ID
这样就只会更新column1列的值,其他列不会变化
在存储过程中拼接SQL语句。解决思路:1、判断参数是否有值,有值拼接sql语句里,没有值不拼接。2、执行拼接后的sql语句。ok问题解决。
说的不清楚呀,我大概猜一下你的意思,
是想用一个通用的存储过程,去做部分字段更新
那么方法就是 在存储过程里拼sql字符串,然后执行,如下
表tab 有 三个字段 id,a,b,c 你想更新的是 b ,现有存储过程
proc_tab_Up 参数包含 @a ,@b ,@c ,@id
@a 参
@b 参:
@c参
Declare @StrSQL NVARCHAR(500)
set @StrSQL = 'update tab set a = '+@a+',b = '+@b+' c = '+@c +' where id = '+@id
exec( @StrSQL )
如上,只想改变b值那么其它字段参数传 字段名就可以了,具体写时,注意类型转换