CREATE PROCEDURE SP_Role_Wcq 
(
@SYS_ACTION char(3), --"ADD"表示增加数据,"UPD"表示修改,"DEL"表示删除
@RoleName  nvarchar(200)=null,--"INF"表示获取基本信息,"LST"表示获取全部列表数据
@RoleInfo nvarchar(4000)=null
)
IF @SYS_ACTION='DEL'
BEGIN 
DELETE 角色 WHERE [name] in (@RoleName)
END如何传入@RoleName的值呢,
比如DELETE 角色 WHERE [name] in ('2','3','4')
db.MakeInParam("@RoleName",SqlDbType.NVarChar,200,delInfo)
这个deInfo值应该怎么样设置呢,我不想遍历调用

解决方案 »

  1.   

    CREATE PROCEDURE SP_Role_Wcq 

    @SYS_ACTION char(3), --"ADD"表示增加数据,"UPD"表示修改,"DEL"表示删除 
    @RoleName  nvarchar(200)=null,--"INF"表示获取基本信息,"LST"表示获取全部列表数据 
    @RoleInfo nvarchar(4000)=null 

    begin
      IF @SYS_ACTION='DEL' 
      DELETE 角色 WHERE charindex([name] , @RoleName) > 0
    end
      

  2.   

    CREATE PROCEDURE SP_Role_Wcq 

    @SYS_ACTION char(3), --"ADD"表示增加数据,"UPD"表示修改,"DEL"表示删除 
    @RoleName  nvarchar(200)=null,--"INF"表示获取基本信息,"LST"表示获取全部列表数据 
    @RoleInfo nvarchar(4000)=null 

    begin
      IF @SYS_ACTION='DEL' 
      DELETE from 角色 WHERE charindex([name] , @RoleName) > 0
    end
      

  3.   

    CREATE PROCEDURE SP_Role_Wcq 

    @SYS_ACTION char(3), --"ADD"表示增加数据,"UPD"表示修改,"DEL"表示删除 
    @RoleName  nvarchar(200)=null,--"INF"表示获取基本信息,"LST"表示获取全部列表数据 
    @RoleInfo nvarchar(4000)=null 

    as
    IF @SYS_ACTION='DEL' 
    DELETE 角色 WHERE charindex(','+[name]+',' ,','+@RoleName+',')>0 
      

  4.   


    CREATE PROCEDURE SP_Role_Wcq 

    @SYS_ACTION char(3), --"ADD"表示增加数据,"UPD"表示修改,"DEL"表示删除 
    @RoleName  nvarchar(200)=null,--"INF"表示获取基本信息,"LST"表示获取全部列表数据 
    @RoleInfo nvarchar(4000)=null 

    as
    begin
    declare @sql varchar(8000) IF @SYS_ACTION='DEL' 
    BEGIN 
    set @sql = ' delete from [角色] WHERE [name] in(''' + @RoleName+''')' print (@sql)
    END 

    exec (@sql)
    end/*exec SP_Role_Wcq 'DEL','SDSD,sadsad'*/