【发布时间】:2015-05-12 19:56:07
【问题描述】:
我的任务是找出 sys.procedures 中每个程序 returns (selects) 有多少列? 程序看起来像
Create PROCEDURE [dbo].[stpSSC_DMND001]
@Event nvarchar(3),
@FunctionalArea nvarchar(10),
@Venue nvarchar(10)
As
BEGIN
BEGIN TRY
If @Event is null or @Event=''
RAISERROR('@Event can not be null or empty string',16,1);
Else if not exists(select * from ENVIRONMENT where CODE=@Event)
RAISERROR('Value "%s" for @Event not found in ENVIRONMENT',16,1, @Event);
IF @FunctionalArea='All'
Set @FunctionalArea=Null
IF @Venue='All'
Set @Venue=Null
SELECT DISTINCT ENV.NAME AS [Event],
ORG.CODE AS [FA code],
ORG.NAMEAS [FA description],
LOC.CODE AS [Venue code]
FROM
POSITION AS POS
LEFT OUTER JOIN
ENVIRONMENT AS ENV ON ENV.CODE = POS.EVENT
WHERE ENV.CCODE_ENV=@Event
AND (@FunctionalArea IS NULL OR org.IDENTIFIER=@FunctionalArea)
AND (@Venue IS NULL OR loc.IDENTIFIER=@Venue)
ORDER BY [FA code],
[Venue code]
END TRY
/* ERROR HANDLING */
BEGIN CATCH
Declare @ErrMsg nvarchar(200) = ERROR_MESSAGE(),
RETURN @ErrNum;
END CATCH
END
我在谷歌上找不到任何熟悉的东西。有什么建议?
【问题讨论】:
-
你想
out参数从程序返回?或者你有一个简单的选择查询并且你返回整个row -
没有输出参数。这只是简单的选择查询。我更新了问题。我需要列数。在这种情况下:tpRGM_SelectSport 2
-
谢谢,但大多是程序要求输入参数,它们会带来很多数据。在我的情况下,执行程序不是一个好主意。
标签: sql sql-server sql-server-2008 tsql stored-procedures