Typy zdefiniowane przez użytkownika tabela

W SQL Server 2008, typ zdefiniowany przez użytkownika tabela jest typ zdefiniowany przez użytkownika, reprezentujący definicji strukturę tabela. Deklarowanie parametrów procedura przechowywana lub funkcja wycenione tabela lub do deklarowania zmiennych tabela, które mają być używane w serii lub w treści procedura przechowywana lub funkcja, można użyć tabela zdefiniowaną przez użytkownika.Aby uzyskać więcej informacji na temat definiowania strukturę tabela zobacz CREATE TABLE (Transact-SQL).

Aby utworzyć typ zdefiniowany przez użytkownika tabela, należy użyć TWORZENIE TYPU instrukcja.Aby sprawdzić, czy dane w tabela zdefiniowaną przez użytkownika spełnia określone wymagania, można utworzyć unikatowe ograniczenia i klucze podstawowe w typie tabela zdefiniowaną przez użytkownika.

Aby uzyskać informacje o widoki wykazu, które są skojarzone z typów zdefiniowanych przez użytkownika Zobacz sys.types and sys.table_types.

Ograniczenia

Typy zdefiniowane przez użytkownika tabela mają następujące ograniczenia:

  • Typ zdefiniowany przez użytkownika tabela nie można użyć jako kolumna w tabela lub pole w strukturze typu zdefiniowanego przez użytkownika.

  • Alias typów na podstawie typu tabela zdefiniowaną przez użytkownika

  • [Nie do replikacja] opcja nie jest dozwolona.

  • Sprawdź ograniczenia wymagają kolumna obliczana, aby być utrwalone.

  • Klucz podstawowy w obliczanej kolumny musi być UTRWALONE i NOT NULL.

  • Nie można utworzyć indeks nieklastrowany w typie tabela zdefiniowaną przez użytkownika, chyba, że indeks jest wynikiem utworzenie ograniczenia klucz podstawowy lub UNIQUE dla tabela zdefiniowaną przez użytkownika.(SQL Server Wymusza wszystkich ograniczeń UNIQUE lub klucz podstawowy za pomocą indeksu.)

  • Definicja typu tabela zdefiniowaną przez użytkownika nie mogą być modyfikowane po jego utworzeniu.

  • Nie można wywołać funkcji zdefiniowanych przez użytkownika w definicji kolumny obliczane typu tabela zdefiniowaną przez użytkownika.

Zabezpieczenia

Uprawnienia dla typów zdefiniowanych przez użytkownika tabela należy postępować zgodnie z modelu zabezpieczeń obiektu SQL Server za pomocą następujących Transact-SQL słowa kluczowe: CREATE GRANT, DENY, ALTER, kontroli, UWZGLĘDNAIJĄ własności, materiały referencyjne, wykonać, definicja VIEW i REVOKE.

Uwaga

Uprawnienie Kontrola do tabela oznacza wszystkie inne uprawnienia w typie tabela.

wiązanie schematu jest ustanowione, jeśli funkcja, w której występuje instrukcja DECLARE określa SCHEMABINDING WITH.Typ tabela jest parametr w procedura lub określono SCHEMABINDING w typie tabela zdefiniowaną przez użytkownika wymagane jest uprawnienie materiały referencyjne.W pozostałych przypadkach wiązanie schematu nie jest ustanowiona i materiały referencyjne uprawnienie nie jest wymagana w typie tabela zdefiniowaną przez użytkownika.

Aby zadeklarować zmienną Tabela, która używa tabeli zdefiniowaną przez użytkownika, wymagane jest uprawnienie wykonać w tej tabeli zdefiniowane przez użytkownika.

Uwaga

Opcją CASCADE nie są wymuszane dla tabela zdefiniowaną przez użytkownika typu uprawnień, ponieważ typ zdefiniowany przez użytkownika tabela nie mogą być osadzone w dowolnej definicji typu.

Przykłady

A.Tworzenie tabela zdefiniowaną przez użytkownika

W poniższym przykładzie przedstawiono sposób tworzenia tabela zdefiniowaną przez użytkownika.

USE AdventureWorks;
GO

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

B.Odwoływanie uprawnień użytkownika tabela

W poniższym przykładzie pokazano, jak uprawnienia mogą być cofnięte w typie tabela określonej przez użytkownika.The REFERENCES permission is revoked from a user named JoAnna on the user-defined tabela type CustomerListType that is within the relational schema mySchema in database myDatabase.

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

Historia zmian

Microsoft Learning

Poniższa instrukcja usunięte z ograniczenia: Nie można określić wartość DOMYŚLNĄ w definicji typu tabela zdefiniowaną przez użytkownika.