在SQL Server中,如果我创建以下类型:
CREATE TYPE TestType AS TABLE
(
[TestTypeId] [int] NOT NULL,
PRIMARY KEY CLUSTERED ([TestTypeId] ASC) WITH (IGNORE_DUP_KEY = OFF)
)
然后针对sys.types
单独查询sys.objects
和TestType
我会为类型名称获得不同的结果。
SELECT name
FROM sys.types
WHERE name LIKE '%TestType%'
返回:TestType
SELECT name
FROM sys.objects
WHERE name LIKE '%TestType%'
返回:TT_TestType_66EBFC9C
为什么会这样? sys.objects
中看似生成的名称有什么用处?
我问的原因是因为自动化过程尝试了这个:
GRANT CONTROL ON TT_TestType_66EBFC9C TO user
产生了错误:
无法找到对象'TT_TestType_66EBFC9C',因为它不存在或您没有权限。