Sma*_*003 7 sql sql-server sql-server-2012
最近我读到了UDT.我创建了一个类型,但我有一个问题.请查看以下内容
---drop type ssn
CREATE TYPE ssn
FROM VARCHAR(11) NOT NULL;
DECLARE @er ssn;
IF Object_id('TEMPDB.DBO.#ter', 'U') IS NOT NULL
DROP TABLE #ter;
CREATE TABLE #ter (
PERIOD_SID INT
,PERIOD_QUAR VARCHAR(10) PRIMARY KEY (PERIOD_SID)
)
INSERT INTO #ter (
PERIOD_SID
,PERIOD_QUAR
)
SELECT *
FROM (
VALUES (
(1)
,(@er)
)
) V(p, q)
Run Code Online (Sandbox Code Playgroud)
我创建了一个类型为ssn,varchar(11)不为null,并运行上面的一个逻辑,它成功执行

根据我的假设,它应该抛出一个错误.
我需要知道为什么上面的逻辑成功运行.
编辑
根据建议我已将此udt添加为AQL服务器中的列,因为在oracle中我们可以创建一个集合类似于UDT的列
IF Object_id('TEMPDB.DBO.#ter1', 'U') IS NOT NULL
DROP TABLE #ter1;
CREATE TABLE #ter1 (
PERIOD_SID INT
,PERIOD_QUAR ssn PRIMARY KEY (PERIOD_SID)
)
Run Code Online (Sandbox Code Playgroud)
创建表时遇到错误,说没有这样的数据类型"ssn"
提前致谢