declare @Title varchar
declare @AddBy varchar
declare @Importance varchar
declare @categoryId int
Update categories Set Title=@Title,AddBy=@AddBy,
Importance=@Importance where categoryId=@categoryId
针对清海扬波 回复的我给个补充答案,当然他已经说明白了!存储过程中你只定义了相应的变量,但没赋值,也就是楼上回复的了!修改如下:
declare @Title varchar;
declare @AddBy varchar;
declare @Importance varchar;
declare @categoryId int;
set @Title='博问';set @AddBy='admin';set @Importance='www.xapx.net';set @categoryId=18;
Update categories Set Title=@Title,AddBy=@AddBy,
Importance=@Importance where categoryId=@categoryId
类似上面的操作即可,当然我在想,如果你上面那段声明代码如果是作为存储过程的接受参数的话,那就需要全部去掉前面的declare就好,同时定义的变量最好给定长度比如如下:
@Title varchar(100);
@AddBy varchar(300);
@Importance varchar(255)
...
定义了要初始化的,你这样的结果相当于
Update categories Set Title=NULL,AddBy=@NULL,
Importance=NULL where categoryId=NULL
@categoryId这个变量的值,要在数据库中有才可以.
你可以试着select * from categories where categoryId=@categoryId看看数据库里是否有符合条件的语句.
如果你查不到符合的数据,返回的影响行数就是0
都是高手啊。。。
set @categoryId=数据库中存在的ID
参数没有赋值或者是where后的条件不满足。