create proc proc_xt_filter
(
@strSQL varchar(1000)
)
as
@strSQLEx varchar(2000);
begin
set @strSQLE='SELECT * FROM ACCTA TA INNER JOIN ACCTB TB ON TA.TA001=TB.TB001 WHERE TA004 IN(SELECT F_ID FROM YOURTABLE WHERE (1>0)'+ @strSQL +')'
搞错
CREATE PROCEDURE SP_TopWinCMS_Article_Delete
@IDs varchar(100)
AS
Declare @SQL varchar(8000)
set @SQL= 'DELETE FROM TopWinCMS_Article where IDs in('+ @IDs +')'
EXEC (@SQL)
GO
CREATE PROCEDURE SP_TopWinCMS_Article_Delete
@IDs varchar(100)
AS
Declare @SQL varchar(8000)
set @SQL= 'DELETE FROM '+ TopWinCMS_Article +' where IDs in('+ @IDs +')'
EXEC (@SQL)
GO
在查询分析器里面运行
CREATE function My_split(@aString varchar(8000),@pattern varchar(10))
returns @temp table([Sid] [int] IDENTITY (1, 1) NOT NULL ,Myvalues varchar(100))
--实现split功能的函数
--说明:@aString,字符串,如“27,28,29”;@pattern,分隔标志,如“ ,”
as
begin
declare @i int
set @aString=rtrim(ltrim(@aString))
set @i=charindex(@pattern,@aString)
while @i>=1
begin
insert @temp values(left(@aString,@i-1))
set @aString=substring(@aString,@i+1,len(@aString)-@i)
set @i=charindex(@pattern,@aString)
end
if @aString<>''
insert @temp values(@aString)
return
end
create proc dbo.test
(
@arr nvarchar(1000)
)
as
begin
create table # (id int identity(1,1), chars nvarchar(10))
insert into #
select 'a' union all
select 'b' union all
select 'e'
declare @sql nvarchar(4000)
set @sql = 'select * from # where chars in (' + @arr + ')'
exec sp_executesql @sql
drop table #
end
go
declare @arr nvarchar(1000)
set @arr = ' ''a'', ''b'' '