我是存储过程世界的新手。存储过程输出值到变量
我们有现有的存储过程,它检查用户名和url路径的系统。存储过程将检查用户详细信息是否存在。如果存在用户名所属的返回值组名。
我想要的是为此存储过程编写asp.net c#代码。传递用户详细信息和路径并将存储过程返回值返回到字符串变量。
下面链接,SQL Server中执行存储过程
http://www.natboxservices.com/helmshore/img/pic.jpg
以下链接为SQL Server产值样子
http://www.natboxservices.com/helmshore/img/2012-07-03%2009.35.13.jpg
注意到上图中组名是空的,因为我执行存储程序输入错误,并且在sqlserver中没有该数据的组名。如果存在它将返回组名称的值,如“管理员”或“经理”
我的问题是“如果数据存在并返回组名称,我想将该值传递给字符串变量”分配参数和通过返回值成字符串变量
这是我的StoredProcedure
USE [IRC_siteadmin]
GO
/****** Object: StoredProcedure [dbo].[sp_intranet_GetSecurity] Script Date: 07/03/2012 10:05:35 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[sp_intranet_GetSecurity]
@username VARCHAR(50),
@path VARCHAR(200),
@errorID INT OUTPUT
AS
BEGIN
SELECT
G.name as groupname
FROM
tbl_site_link L WITH(NOLOCK)
INNER JOIN
tbl_site_link_group LG WITH(NOLOCK)
ON
L.link_id = LG.link_id
INNER JOIN
tbl_site_group G WITH(NOLOCK)
ON
LG.group_id = G.group_id
INNER JOIN
( SELECT
group_id
FROM
tbl_site_user U WITH(NOLOCK)
INNER JOIN
tbl_site_user_group UG WITH(NOLOCK)
ON
U.user_id = UG.user_id
WHERE
[name] = @Username) U
ON
G.group_id = U.group_id
WHERE
L.url LIKE '%'[email protected]+'%'
AND
(U.group_id IS NOT NULL)
UNION
SELECT
'Uber' as groupname
FROM
tbl_site_link L WITH(NOLOCK)
INNER JOIN
tbl_site_link_group LG WITH(NOLOCK)
ON
L.link_id = LG.link_id
CROSS JOIN
( SELECT
group_id
FROM
tbl_site_user U WITH(NOLOCK)
INNER JOIN
tbl_site_user_group UG WITH(NOLOCK)
ON
U.user_id = UG.user_id
WHERE
[name] = @Username
AND
group_id = 1) U
WHERE
L.url LIKE '%'[email protected]+'%'
AND
(U.group_id IS NOT NULL)
END
任何帮助赞赏
感谢
听过屏幕争夺的?你正在使用电脑,并且你拍了一张屏幕的照片!?! – freefaller
你的存储过程在哪里?分享代码。不是屏幕截图 –
为什么你使用表提示('WITH(NOLOCK)')?这是[不建议除非调试特定的性能问题](http://msdn.microsoft.com/en-us/library/ms187373.aspx)。 – CodeCaster