Aracılığıyla paylaş


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

De SQL Server 2008, kullanıcı tanımlı tablo türü kullanıcı tanımlı tür temsil eden tanımının bir tablo yapısı.Kullanıcı tanımlı tablo türü tablo değerli parametreler için saklı yordamları ve işlevleri bildirmek için veya bir toplu iş veya saklı yordam veya işlev gövdesinde kullanmak istediğiniz tablo değişkenleri bildirmek için kullanabilirsiniz.Tablo yapısını tanımlama konusunda daha fazla bilgi için bkz: CREATE TABLE (Transact-SQL).

Tablo kullanıcı tanımlı türü oluşturmak için create type deyim.Kullanıcı tanımlı tablo türü verileri belirli gereksinimleri karşıladığından emin olmak için benzersiz kısıtlamaları ve birincil anahtarlar üzerinde kullanıcı tanımlı tablo türü oluşturabilirsiniz.

Hakkında bilgi için katalog görünümleri , kullanıcı tanımlı türleri ile ilişkili Bkz: sys.types ve 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 olarak kullanılamaz veya bir alan yapılandırılmış kullanıcı tanımlı tür.

  • Kullanıcı tanımlı tablo türüne göre diğer ad türleri

  • [not for REPLICATION] seçeneği verilir.

  • Kontrol kısıtlamaları kalıcı hesaplanan sütun gerektirir.

  • Hesaplanan sütunlar üzerinde birincil anahtar 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 kullanıcı tanımlı tablo türü üzerinde kümelenmemiş dizin oluşturulamaz.(SQL Server bir dizini. kullanarak benzersiz veya birincil anahtar kısıtlamasını zorlar)

  • Kullanıcı tanımlı tablo türü tanımı oluşturulduktan sonra değiştirilemez.

  • Kullanıcı tanımlı işlevler, kullanıcı tanımlı tablo türü hesaplanan sütun tanımı içinde çağrılamaz.

Güvenlik

Kullanıcı tanımlı tablo türleri için izinleri uygulayın nesne güvenlik modeli için SQL Server kullanarak aşağıdaki Transact-SQL anahtar sözcükler: OLUŞTURMA, grant, deny, alter, Denetim, sahipliği, başvurular, execute, VIEW DEFINITION ve revoke.

Not

Bir tablo türü üzerinde denetim izni tablo türü üzerinde diğer tüm izinler anlamına gelir.

Şema cilt payı kurulan, hangi işlev declare deyim oluşur olan ema BALAMA belirtir.BAŞVURULAR izni tablo türü bir yordam parametre veya ema BALAMA belirtilen kullanıcı tanımlı tablo türü üzerinde gerekli.Diğer tüm durumlarda hiçbir şema bağlama BAŞVURAN ve kurulur kullanıcı tanımlı tablo türüne izin gerekli değildir.

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

Not

Kullanıcı tanımlı tablo türü herhangi tür tanımında gömülü olamaz çünkü cascade seçeneği için kullanıcı tanımlı tablo türü izinleri zorlanmaz.

Örnekler

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

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

USE AdventureWorks2008R2;
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 etme

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

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