首页 > 解决方案 > 具有可选输出的存储过程

问题描述

我正在更新一个存储过程,该过程使用字符串作为输入来检查本地文件是否存在。它被用作一些 SSIS 包的完整性检查,它给出的唯一输出是它是否找不到文件,在这种情况下它将返回一个 SQL 错误。

该过程可以处理通配符,所以我正在考虑扩展该过程以返回它找到的文件的名称(如果它获得多个返回,则会出现一个新错误),这对于处理可变文件名但使用平面文件的包很有用连接器。向过程添加输出参数意味着您不能使用该过程,除非您声明一个变量来保存输出。

有没有一种方法来构建程序,以便仅在有人指定他们想要所述输出时才给出输出?

标签: sql-servertsqlssis

解决方案


CREATE PROC dbo.MySP @i1 INT
    ,@i2 INT = NULL OUTPUT
AS
BEGIN
    SELECT 1
END
GO

EXEC dbo.MySP 1
GO

DECLARE @i INT

EXEC dbo.MySP 1
    ,@i OUTPUT
GO

DECLARE @i INT

EXEC dbo.MySP 1
    ,@i
GO

推荐阅读