sql-server - 具有可选输出的存储过程
问题描述
我正在更新一个存储过程,该过程使用字符串作为输入来检查本地文件是否存在。它被用作一些 SSIS 包的完整性检查,它给出的唯一输出是它是否找不到文件,在这种情况下它将返回一个 SQL 错误。
该过程可以处理通配符,所以我正在考虑扩展该过程以返回它找到的文件的名称(如果它获得多个返回,则会出现一个新错误),这对于处理可变文件名但使用平面文件的包很有用连接器。向过程添加输出参数意味着您不能使用该过程,除非您声明一个变量来保存输出。
有没有一种方法来构建程序,以便仅在有人指定他们想要所述输出时才给出输出?
解决方案
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
推荐阅读
- node.js - TypeORM:在没有专用 ormconfig 文件的情况下生成迁移
- php - 如何使用字符串操作解决“解码字符串问题”?
- javascript - 可变范围 JavaScript - 事件
- reactjs - 如何强制编译并忽略@typescript-eslint 错误?
- list - 在列表中查找模式,序言
- javascript - 动态路由:React/TypeScript
- django - Django 首次使用 Heroku 部署
- message - anylogic代理通信和消息发送
- flutter - 有谁知道是否可以扩展颤振小部件?
- c# - 设置 2 秒延迟在 xamarin 中不起作用