哪个是用户定义表类型的真实对象名称?

时间:2016-02-05 16:05:25

标签: sql sql-server sqldatatypes

在SQL Server中,如果我创建以下类型:

CREATE TYPE TestType AS TABLE 
(
    [TestTypeId] [int] NOT NULL,
    PRIMARY KEY CLUSTERED ([TestTypeId] ASC) WITH (IGNORE_DUP_KEY = OFF)
)

然后针对sys.types单独查询sys.objectsTestType我会为类型名称获得不同的结果。

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',因为它不存在或您没有权限。

0 个答案:

没有答案