sql-server - 如何为用户定义的表类型设置函数的默认参数值?
问题描述
我有一个用户定义的表类型:
CREATE TYPE [dbo].[EntityKeysTable] AS TABLE
(
[EntityKey] [uniqueidentifier] NOT NULL,
PRIMARY KEY CLUSTERED( [EntityKey] ASC) WITH (IGNORE_DUP_KEY = OFF)
)
还有一个使用它的函数......但是这个函数正在被我们系统中的不同进程使用,我不想进入并且必须在任何地方处理新参数,所以我宁愿让它成为可选的里面的默认值...
ALTER FUNCTION [dbo].[fnMyFunctionNameHere]
(@siteId UNIQUEIDENTIFIER,
@entityKeys AS EntityKeysTable READONLY,
@partialDeploy AS BIT = false)
RETURNS TABLE
AS
RETURN (
WITH Overrides AS (
SELECT * ....
我这样做是为了 .@partialDeploy
但不确定如何为@entityKeys
.
解决方案
对于我之前的误导性信息,我深表歉意。
表值函数不能为空。但是您可以在其中不包含任何记录的情况下定义它们。因此,您将检查(select count(*) from @entityKeys) = 0
是否有 entityKeys。
if (select count(*) from @entityKeys) = 0
--load @entityKeys as your wish
推荐阅读
- google-cloud-data-fusion - 自动检测数据融合中 HTTP 插件的嵌套 json 响应
- ios - SwiftUI:关闭工作表后,导航栏按钮的点击目标未对齐
- python - 通过鼠标单击返回 2D 绘图的 x,y 值
- c - 在单链表的开头添加一个节点 (C)
- java - 无法让角色在 Spring Boot Security 中工作
- mysql - 如何使用mysql和knex js(Node js)插入存储在数组中的多条JSON记录?
- generics - Kotlin 关于混合泛型和继承的困惑
- excel - 在 VBA 代码中使用命名单元会减慢宏的速度吗?
- c# - Firebase 总是返回 null
- python - KNN算法实现