可以作为varchar类型create procedure testp
@idstr varchar(1000)
as
begin
declare @sql varchar(2000)
set @sql='delete from table where id in (' + @idstr + ')'
exec(@sql)
end
@idstr varchar(1000)
as
begin
declare @sql varchar(2000)
set @sql='delete from table where id in (' + @idstr + ')'
exec(@sql)
end
set @a='1,3,5'
exec('delete [table] where id in ('+@a+')')
create proc p_delete @str varchar(1000)
as
exec('delete from table where id in ('+@str+')')
go--调用方法
declare @a varchar(1000)
set @a='1,2,5' --这个是要传递的参数
exec p_delete @a
create proc p_delete @str varchar(1000)
as
exec('delete from table where id in ('+@str+')')
go--调用方法
declare @a varchar(1000)
set @a='1,2,5' --这个是要传递的参数
exec p_delete @a
@id varchar(1000)
as
begin
declare @sql varchar(2000)
set @sql='delete from table where id in ' + rtrim(@id)
exec(@sql)
end参数写成 (1,2,6,10)就可以了
@str nvarchar(100)
as
declare @sql nvarchar(400)
select @sql='delete from tablename where id in (' + @str + ')'
exec sp_executesql @sqlgo--数据库里面调用
exec proc_del '1,3,5'
go
你说的ADO对象是在什么开发工具里面用
我给你vb的调用代码Set cmd = New ADODB.Command
With cmd
.ActiveConnection = con
.CommandType = adCmdStoredProc
.CommandText = "proc_del"
.Parameters.Append .CreateParameter("@str", adVarWChar, adParamInput, 100, "1,3,5")
.Execute
End With
但是用delete from testtable where id in('001','002')就可以了
用下面的方法传递参数可以:
create procedure delete_sql
@name varchar(1000)
as
begin
declare @sql varchar(2000)
set @sql='delete from testtable where name in('+@name+')'
exec(@sql)
end
执行上面的过程:declare @name varchar(100)
set @name='''001'''+',''ccc'''
execute delete_sql @name
set @name='''001'''+',''ccc''' --关键,如果写成@name='001,ccc'就不行了。大家给个更好的方法。