我有一个用户定义的表类型。我想在使用OBJECT_ID(name, type)函数编辑补丁之前检查它的存在。
OBJECT_ID(name, type)
对于用户定义的表类型,应该type从枚举中传递什么?
type
N'U'像用户定义的表一样不起作用,即IF OBJECT_ID(N'MyType', N'U') IS NOT NULL
N'U'
IF OBJECT_ID(N'MyType', N'U') IS NOT NULL
您可以查看 sys.types 或使用 TYPE_ID:
IF TYPE_ID(N'MyType') IS NULL ...
只是一个预防措施:使用 type_id 不会验证该类型是否为 表 类型——只是该名称的类型存在。否则 gbn 的查询可能会更好。