我的SQL Server 2008 R2/2012上創建用戶定義的表類型與此聲明:的SQL Server創建的模式用戶自定義表類型不能正常工作
CREATE TYPE [MySchemaName].[MyUserTableType]
As Table ([Id] varchar(20) NOT NULL);
這按預期工作。
我還得到一個存儲過程,它將所有關聯的對象刪除到給定的模式。 這是我的用戶定義表類型無法正常工作的地方。我期待 這些類型是用相關的模式創建的。
如果我嘗試刪除架構,它會抱怨該架構與我的用戶定義表類型相關聯。因此它不會被刪除。
但是,如果我查詢我的數據庫中的所有對象是TYPE_TABLE它告訴我,我的表類型不屬於我的架構。他們屬於模式'系統'
SELECT name, schema_id, type_desc
FROM [TESTDB].SYS.OBJECTS
WHERE type_desc = 'TYPE_TABLE';
SELECT * FROM sys.schemas;
任何想法爲什麼?
這裏是我的輸出
這是我的理解是用戶定義類型總是被分配到「SYS」的模式,所以這是預期的行爲有關在一起。用戶定義的模式可以分配給函數,過程,表格和觸發器 – talegna