如何在Sql中创建用户定义的类型

r b*_*bhd 3 sql-server integrity

我不知道如何创建具有可选约束的域?我试过

CREATE DOMAIN idx INT CHECK (VALUE > 100 AND VALUE < 999);
Run Code Online (Sandbox Code Playgroud)

但在 CREATE、DROP 或 ALTER 语句中遇到了以下错误未知对象类型“DOMAIN”。

Mad*_*ert 6

CREATE TYPE myType AS TABLE
(
   idx INT,
   CHECK (idx > 100 AND idx < 999)
)
Run Code Online (Sandbox Code Playgroud)

或者您也可以创建规则并将它们绑定到您的类型。

CREATE TYPE [dbo].[myType] 
FROM [INT] NOT NULL
GO

CREATE RULE multiplyByTen
AS @myType % 10 = 0
AND @myType > 100
AND @myType < 999
Run Code Online (Sandbox Code Playgroud)

然后绑定规则

EXEC sp_bindrule 'multiplyByTen', 'myType'
Run Code Online (Sandbox Code Playgroud)

  • `sp_bindrule`:**重要** 此功能将在 Microsoft SQL Server 的未来版本中删除。 (4认同)