日期:2014-05-18  浏览次数:20431 次

简单的sql 问题 100分!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

sql语句如下:

DELETE   FROM   Sort   WHERE   CHARINDEX( ',12, ',Path)   >   0

上句在查询分析器可以执行

现在我要把这句写成存储过程,但其它的CHARINDEX( ',12, ',Path)这句不知道怎么写

CHARINDEX( ',12, ',Path)中的12是调用户存储过程时传的参数

不知道我说清楚没有

希望大家帮忙,解决了马上给分


------解决方案--------------------
--如果傳入參數是Int
--創建
Create ProceDure SP_TEST(@Path Int)
As
Begin
DELETE FROM Sort WHERE CHARINDEX( ', ' + Cast(@Path As Varchar) + ', ',Path) > 0
End
GO


--調用
EXEC SP_TEST 12
------解决方案--------------------
--如果傳入參數是字符型
--創建
Create ProceDure SP_TEST(@Path Varchar)
As
Begin
DELETE FROM Sort WHERE CHARINDEX( ', ' + @Path + ', ',Path) > 0
End
GO


--調用
EXEC SP_TEST '12 '
------解决方案--------------------
ERPCoder(Most Valuable Player) ( ) 信誉:100 Blog 加为好友 2007-06-12 14:32:09 得分: 0


CREATER PROCEDURE pro
@path char(10)
as
DELETE FROM Sort WHERE CHARINDEX( ', ' + @path + ', ',Path) > 0
go


---------

傳入的參數采用char類型是有問題的,你這樣會導致刪除不了任何數據。
------解决方案--------------------
create proc use_del
@Number INT
as
delete from Sort where CHARINDEX( ',@Number, ',Path)> 0
不知道你这里面的Path是不是数据库里的某个字段
应该是这样子写法吧!你试一下吧。
------解决方案--------------------

Create ProceDure SP_TEST
(
@aa Varchar(20)
)
as
DELETE FROM [Sort] WHERE CHARINDEX( ',@aa, ',Path) > 0