请看原的帖子:
http://community.csdn.net/Expert/topic/4862/4862719.xml?temp=.5835077
-----------------------------------------------------------------------
内容如下;
CREATE PROCEDURE [DeleteFromUsers]
(@name_1 [char],
 @age_2 [char])AS DELETE [lyjqgds].[dbo].[users] WHERE 
( [name] = @name_1 AND
 [age] = @age_2)
GO在查询分析器中调用此过程并且正确传递了参数,后台也没提示错误,执行完毕之后,对应记录竟然没删除!!???
TRY了N 便,仍然如此,请各位帮忙
--------------------------------------------------------------按照liangpei2008,yongyupost2000等大虾的指点把表各个字段都该成VARCHAR类型的,然后把存储过程的参数的数据类型也修改为VARCHAR了,但是从查询分析器里重新调用 DELETEFROMUSERS 这个过程,仍然提示‘影响行数为0’,传送参数、条件绝对正确,因为一共就那么几条记录,用肉眼都能看得出来。
实在是白思不得其解!!

解决方案 »

  1.   

    你把
     DELETE [lyjqgds].[dbo].[users] 
    改成
    select * from [lyjqgds].[dbo].[users] 看看有没有结果出来,多半还是参数问题
      

  2.   

    呵呵终于解决了,各位大虾对小问题往往想的过于复杂,很多高深的理论却没有能解决这个问题,其实故障出在 我没有对存储过程的形参给出固定大小!!假如我传过来的参数有5个字符,但是存储过程的形参没有大小(0),那么怎么也不会有符合条件的记录了,晕哦,因为形参(0)根本不能接受有长度的实参啊,不知道我想的对否?
     
    把存储过程改成下面的就完全可以了 CREATE PROCEDURE [DeleteFromUsers]
    (@name_1 [VARchar(50)],--这个长度最好和表字段的长度一致
     @age_2 [VARchar(50)])AS DELETE [lyjqgds].[dbo].[users] WHERE 
    ( [name] = @name_1 AND
     [age] = @age_2)
    GO谢谢回答http://community.csdn.net/Expert/topic/4862/4862719.xml?temp=.5835077
    的朋友,谢谢LouisXIV(夜游神),呵呵,是参数的问题