Djabarov, Robert
Robert.Djabarov at usaa.com
Thu Apr 8 17:25:27 CDT 2004
You can use this function:
create function dbo.fn_ParseString2VarCharTable (
@string varchar(8000) ) returns @tbl table (
RecordID int identity(1,1) not null primary key clustered,
[String] varchar(8000) not null ) as
begin
declare @spos int, @pos int
set @string = replace(replace(@string, ', ', ','), ' ,', ',')
set @spos = 1
set @pos = 100
while (@pos) > 0 begin
set @pos = charindex(',', @string, @spos)
insert @tbl ([String])
select
ltrim (
rtrim (
substring (
@string, @spos,
case
when (@pos - @spos) <= 0 then
datalength(@string) + 1
else @pos
end - @spos
)
)
)
set @spos = @pos + 1
end
return
end
GO
Then you'd do a join instead of IN:
SELECT * FROM table t
inner join dbo.fn_ParseString2VarCharTable(@CustCode) f
on [CustCode] = f.[String]
Robert Djabarov
SQL Server & UDB
Sr. SQL Server Administrator
Phone: (210) 913-3148
Pager: (210) 753-3148
9800 Fredericksburg Rd. San Antonio, TX 78288
www.usaa.com
-----Original Message-----
From: dba-sqlserver-bounces at databaseadvisors.com
[mailto:dba-sqlserver-bounces at databaseadvisors.com] On Behalf Of Eric
Barro
Sent: Thursday, April 08, 2004 4:56 PM
To: dba-sqlserver at databaseadvisors.com
Subject: [dba-SQLServer] passing IN search condition to stored procedure
Greetings SQL gurus!
I have a .NET page that declares parameters for passing to a stored
procedure with the code fragment...
myCommand.CommandType = CommandType.StoredProcedure
myCommand.Parameters.Add(New SqlParameter("@CustCode",
SqlDbType.varchar, 255)).Value = strCustCode
On the stored procedure I have this...
SELECT * FROM table
WHERE [CustCode] IN (@CustCode)
with @CustCode defined as a parameter.
I can't get it to work...has anyone passed a bunch of values to a stored
proc with an IN search condition and gotten it to work?
strCustCode would be equal to ('CUST01', 'CUST02', 'CUST03')
---
Eric Barro
Senior Systems Analyst
Advanced Field Services
(208) 772-7060
http://www.afsweb.com
---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.655 / Virus Database: 420 - Release Date: 4/8/2004
_______________________________________________
dba-SQLServer mailing list
dba-SQLServer at databaseadvisors.com
http://databaseadvisors.com/mailman/listinfo/dba-sqlserver
http://www.databaseadvisors.com