Please start any new threads on our new site at https://forums.sqlteam.com. We've got lots of great SQL Server experts to answer whatever question you can come up with.

 All Forums
 SQL Server 2008 Forums
 Transact-SQL (2008)
 passing parameter into stored procedure

Author  Topic 

HenryFulmer
Posting Yak Master

110 Posts

Posted - 2011-08-19 : 14:38:44
I have the following stored procedure to generate an XML formatted output:

CREATE PROCEDURE partXML
AS
DECLARE @XmlOutput xml
SET @XmlOutput = (SELECT partNo,partName,partStatus, partCode FROM parts WHERE partNo IN ('123A', 'D456')
FOR XML AUTO, ROOT('part'), ELEMENTS)

SELECT @XmlOutput
go


I would like to be able to pass in the partNo as a variable when I execute the procedure
exec partXML '123A', 'D456'


How do I go about that? Thanks.

tkizer
Almighty SQL Goddess

38200 Posts

Posted - 2011-08-19 : 14:43:49
Rename the variables and use the proper data type, but here you go:

CREATE PROCEDURE partXML
(@var1 varchar(10), @var2 varchar(10)
AS
DECLARE @XmlOutput xml
SET @XmlOutput = (SELECT partNo,partName,partStatus, partCode FROM parts WHERE partNo IN (@var1, @var2)
FOR XML AUTO, ROOT('part'), ELEMENTS)

SELECT @XmlOutput
go

Tara Kizer
Microsoft MVP for Windows Server System - SQL Server
http://weblogs.sqlteam.com/tarad/

Subscribe to my blog
Go to Top of Page

visakh16
Very Important crosS Applying yaK Herder

52326 Posts

Posted - 2011-08-20 : 01:18:17
if you want to pass PartNo as a comma seperated list you need to change statement like below

CREATE PROCEDURE partXML
@partnolist varchar(max)
AS
DECLARE @XmlOutput xml
SET @XmlOutput = (SELECT partNo,partName,partStatus, partCode FROM parts WHERE ',' + @partnolist + ',' LIKE '%,' + partNo + ',%'
FOR XML AUTO, ROOT('part'), ELEMENTS)

SELECT @XmlOutput
go

and call it like
exec partXML '123A,D456,B775,443D,....'





------------------------------------------------------------------------------------------------------
SQL Server MVP
http://visakhm.blogspot.com/

Go to Top of Page
   

- Advertisement -