Thursday 10 July 2014

SQL OUTPUT variables in stored procedures

CREATE PROCEDURE dbo.GetCountByLastName (
@LastName NVARCHAR(50),
@LastNameCount INT OUTPUT )
AS
SELECT @LastNameCount = COUNT(*)
FROM Person.Contact
WHERE LastName = @LastName
-------------------------------------------
DECLARE @TheCount INT
EXEC dbo.GetCountByLastName
@LastName = 'Alexander',
@LastNameCount = @TheCount OUTPUT
SELECT TheCount = @TheCount
GO
---------------------------------------------------------------------
string connectionString =
@"Server=L40\YUKON; Initial Catalog=AdventureWorks; Integrated Security=True;";
using (SqlConnection conn = new SqlConnection(connectionString))
{
using (SqlCommand cmd = new SqlCommand("dbo.GetCountByLastName"))
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add(new SqlParameter("@LastName", "Alexander"));
SqlParameter countParameter = new SqlParameter("@LastNameCount", 0);
countParameter.Direction = ParameterDirection.Output;
cmd.Parameters.Add(countParameter);
conn.Open();
cmd.Connection = conn;
cmd.ExecuteNonQuery();
int count = Int32.Parse(cmd.Parameters["@LastNameCount"].Value.ToString());
Response.Write("
Count: " + count.ToString());
conn.Close();
}
}