Aracılığıyla paylaş


Kullanıcı tanımlı tablo türleri

Içinde SQL Server 2008, bir kullanıcı tanımlı tablo tanımını bir tablonun yapısını temsil eden bir kullanıcı tanımlı tür türüdür. Kullanıcı tanımlı tablo türü, tablo değerli parametrelerini saklı yordam veya işlev bildirmek için veya bir toplu iş veya gövde metninde bir saklı yordam veya işlev için kullanmak istediğiniz tablo değişkenlerini bildirmek için kullanabilirsiniz.Nasıl tanımlanacağı hakkında daha fazla bilgi için bir tablo yapılandırmak için bkz: tablo (Transact-SQL) CREATE.

Kullanıcı tanımlı tablo türü oluşturmak için TİPİ OLUŞTURMA deyim.Kullanıcı tanımlı tablo türü verilerde belirli gereksinimleri karşıladığından emin olmak için , kullanıcı tanımlı tablo türüne benzersiz kısıtlamaları ve birincil anahtarlar oluşturabilirsiniz.

Kullanıcı tanımlı türler ile ilişkilendirilen katalog görünümleri hakkında daha fazla bilgi için bkz: sys.Types and sys.table_types.

Kısıtlamalar

Kullanıcı tanımlı tablo türleri aşağıdaki kısıtlamaları vardır:

  • Kullanıcı tanımlı tablo türü bir tablodaki bir sütun veya alan yapılandırılmış bir kullanıcı tanımlı tür olarak kullanılamaz.

  • Bir kullanıcı tanımlı tablo türüne bağlı olarak diğer ad ad türleri

  • [çoğaltma IÇIN DEĞIL] seçeneği izin verilmiyor.

  • Kalıcı için hesaplanan sütun kısıtlamaları gerektiren CHECK.

  • Hesaplanan sütunlar birincil anahtarının KALıCı ve NOT NULL.

  • Kullanıcı tanımlı tablo türü bir birincil anahtar veya BENZERSIZ kısıtlama oluşturma sonucunu dizin olmadığı sürece, kümelenmemiş BIR dizin üzerinde kullanıcı tanımlı tablo türü oluşturulamıyor.(SQL Server UNIQUE veya birincil anahtar kısıtlaması herhangi bir dizini kullanarak zorlar.)

  • Tablo kullanıcı tanımlı tür tanımında, oluşturulduktan sonra değiştirilemez.

  • Kullanıcı tanımlı işlevleri, hesaplanmış sütunları bir tablo kullanıcı tanımlı tür tanımı içinde çağrılamaz.

Güvenlik

Tablo kullanıcı tanımlı türler için izinler için nesne güvenlik modelini izleyin... SQL Server aşağıdakileri kullanarak Transact-SQL Anahtar Sözcükler: CREATE, GRANT, DENY, ALTER, DENETIM, SAHIPLIĞINI ALıN, BAşVURULAR, yürütmek, GÖRÜNÜM TANıMıNı ve REVOKE.

Not

Tablo türü üzerinde DENETIM izni, diğer tüm izinler tablo türündeki anlamına gelir.

Bir şema bağlama zaman DECLARE bildirimi gerçekleştiği işlevi, WITH SCHEMA belirtir kurulan bağlama.BAŞVURULAR iznine, tablo türü bir yordamında bir parametre veya SCHEMABINDING belirtildiğinde kullanıcı tanımlı tablo türüne gereklidir.Diğer durumlarda hiçbir şema cilt payı kurulur ve kullanıcı tanımlı tablo türüne BAşVURULAR izni gereklidir.

Kullanıcı tanımlı tablo türünü kullanan bir tablo değişkeni bildirmek için , bu kullanıcı tanımlı tablo türü üzerinde yürütmek izni gereklidir.

Not

Kullanıcı tanımlı tablo türü bir tür tanımında gömülü CASCADE seçeneği, kullanıcı tanımlı tablo türü izinlerini zorlanmaz.

Örnekler

C.Kullanıcı tanımlı tablo türü oluşturma

Aşağıdaki örnek, kullanıcı tanımlı tablo türü oluşturulması gösterilmiştir.

USE AdventureWorks;
GO

/* Create a user-defined table type */
CREATE TYPE LocationTableType AS TABLE 
( LocationName VARCHAR(50)
, CostRate INT );
GO

b.Kullanıcı tanımlı tablo türü izinleri iptal ediliyor

Aşağıdaki örnek, izinleri bir kullanıcı tarafından tanımlanan belirli bir tablo türü üzerinde nasıl iptal edilebilir gösterir.The REFERENCES permission is revoked from a user named JoAnna on the user-defined tablo type CustomerListType that is within the relational schema mySchema in database myDatabase.

USE myDatabase
GO
REVOKE REFERENCES ON TYPE::[mySchema].[CustomerListType] FROM JoAnna
GO

Değişiklik Geçmişi

Güncelleştirilmiş içerik

Aşağıdaki deyim kısıtlamaları kaldırıldı: VARSAYıLAN değer, bir tablo kullanıcı tanımlı tür tanımında belirtilemez.