简单的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