header
header Register : : Login header
header
divider
menuleft
menuright
submenu
left

We have a new sponsor!  Introducting Pragma Systems.  See the home page for details.

How to get return value from a SQL store procedure
Last Post 21 Jun 2009 01:33 PM by gtan. 2 Replies.
Printer Friendly
Sort:
PrevPrev NextNext
You are not authorized to post a reply.
Author Messages Not Resolved
gtanUser is Offline
New Member
New Member
Posts:2
Avatar

--
18 Jun 2009 03:44 AM  
Hi, all

I am new to powershell, and practicing to use .net object in Powershell.

Now I can select/update/insert into SQL tables, but cannot get the return value, and output parameter from a store procedure.

Could someone please give me a sample script for these?

Thanks a lot,
Gary
cmille19User is Offline
New Member
New Member
Posts:61
Avatar

--
18 Jun 2009 09:13 PM  
Getting output and return parameters is a slightly more difficult, but here's an example:

I created procedure call InsertCategory in the Northwind database as follows:

CREATE PROCEDURE dbo.InsertCategory
@CategoryName nvarchar(15)
,@Identity int OUT
AS
SET NOCOUNT ON
INSERT INTO Categories (CategoryName) VALUES(@CategoryName)
SET @Identity = SCOPE_IDENTITY()
RETURN @@ROWCOUNT

And this is the Powershell script to call the procedure and obtain the output parameter and return values (change the serverName variable for your environment):

$serverName='Z002\SQL2K8'
$databaseName='Northwind'
$query='InsertCategory'
$catName='Test'

$connString = "Server=$serverName;Database=$databaseName;Integrated Security=SSPI;"
$conn = new-object System.Data.SqlClient.SqlConnection $connString
$conn.Open()
$cmd = new-object System.Data.SqlClient.SqlCommand("$query", $conn)

$cmd.CommandType = [System.Data.CommandType]"StoredProcedure"

$cmd.Parameters.Add("@RowCount", [System.Data.SqlDbType]"Int")
$cmd.Parameters["@RowCount"].Direction = [System.Data.ParameterDirection]"ReturnValue"

$cmd.Parameters.Add("@CategoryName", [System.Data.SqlDbType]"NChar", 15)
$cmd.Parameters["@CategoryName"].Value = $catName

$cmd.Parameters.Add("@Identity", [System.Data.SqlDbType]"Int")
$cmd.Parameters["@Identity"].Direction = [System.Data.ParameterDirection]"Output"

$cmd.ExecuteNonQuery()
$conn.Close()

$cmd.Parameters["@RowCount"].Value
$cmd.Parameters["@Identity"].Value
gtanUser is Offline
New Member
New Member
Posts:2
Avatar

--
21 Jun 2009 01:33 PM  
Thank you so much, it works like a charm.
You are not authorized to post a reply.

Active Forums 4.1
right
   
footer Sponsored by Quest Software • SAPIEN Technologies • Compellent • Microsoft Windows Server 2008 footer
footer