내가 원하는 것을 가능하게 만들었는지 모르겠다. 나는 단지 궁금하다.UDT에 대한 여러 입력 유형
나는 허용 값이 내가 알고 싶습니다 무엇
-- Existing UDT & Rule which work
CREATE TYPE [MySchema].[MyTypes]
FROM [TINYINT]
CREATE RULE [MySchema].[MyTypes_Rule] AS
@Range BETWEEN 0 AND 3
sp_bindrule 'MySchema.MyTypes_Rule', 'MySchema.MyTypes'
0과 3 있어야한다는 내용의 규칙과 함께 TINYINT 인 말합니다 MyType의 사용자 정의 형식있어 추가 규칙/기능을 추가하여 NVARCHAR 값을 취하는 추가 규칙을 만들고 해당 범위 내에 있으면 적절한 TINYINT 값으로 변환 할 수 있습니다.
CREATE RULE [MySchema].[MyTypes_NVARCHAR_Rule1] AS
@InValues IN (N'N', N'A', N'B', N'C')
CREATE RULE [MySchema].[MyTypes_NVARCHAR_Rule1] AS
@InValues IN (N'No Choice', N'Choice A', N'Choice B', N'Choice C')
그리고이 초이스 A '또는'A '에서의 1의 값, 초이스 B'또는 제 2의 값 'B', 등, 등 등
에 전환의 일부 유형을아래 스크립트는 문자열이 허용되는 값으로 변환되는 곳에서 수행하려는 기능과 비슷합니다.
CREATE TABLE [MyTable]
([MyValue] BIT,
[Description] NVARCHAR(20))
GO
INSERT INTO [MyTable]
([MyValue], [Description])
SELECT 0, 'Enterered as 0' -- false
UNION
SELECT 1, 'Enterered as 1' -- true
UNION
SELECT CAST(0 AS BIT), 'Enterered as CAST(0 AS BIT)' -- false
UNION
SELECT CAST(1 AS BIT), 'Enterered as CAST(1 AS BIT)' -- true
UNION
SELECT CAST('false' AS BIT), 'Enterered as CAST(''false'' AS BIT)' -- false
UNION
SELECT CAST('true' AS BIT), 'Enterered as CAST(''true'' AS BIT)' -- true