Udostępnij za pośrednictwem


Typów zdefiniowanych przez użytkownika tabeli

W SQL Server 2008, typ zdefiniowany przez użytkownika tabela jest typ zdefiniowany przez użytkownika reprezentująca definicji strukturę tabela.Typ zdefiniowany przez użytkownika tabeli można użyć zadeklarować oródwierszową parametry procedura składowana lub funkcja lub deklarować zmienne Tabela, których chcesz użyć w partia lub w treści procedura składowana lub funkcja.Aby uzyskać więcej informacji na temat definiowania struktury tabela, zobacz CREATE TABLE (Transact-SQL).

Aby utworzyć typ zdefiniowany przez użytkownika tabela, użyj Utworzyć typ instrukcja.W celu zapewnienia, że dane w tabela zdefiniowanej przez użytkownika spełnia określone wymagania, można utworzyć unikatowe ograniczenia i klucze podstawowe typu tabela zdefiniowanej przez użytkownika.

Aby uzyskać informacje o widoki wykazu , które są skojarzone z typów zdefiniowanych przez użytkownika, zobacz sys.types i 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żywać jako kolumna w tabela lub pole w strukturze typ zdefiniowany przez użytkownika.

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

  • [Nie dla replikacji] opcja nie jest dozwolona.

  • Sprawdź ograniczenia wymagają kolumna obliczana do utrwalone.

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

  • Nie można utworzyć indeks nieklastrowany na typ zdefiniowany przez użytkownika tabela, chyba, że indeks jest wynikiem tworzenia klucz podstawowy lub unikatowe ograniczenie typu tabela zdefiniowanej przez użytkownika.(SQL Server wymusza wszelkie ograniczenie klucza podstawowego i za pomocą indeksu.)

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

  • Nie można wywołać funkcji zdefiniowanych przez użytkownika w definicji obliczanej kolumny tabela zdefiniowanej przez użytkownika.

Zabezpieczenia

Uprawnienia dla typów zdefiniowanych przez użytkownika tabela wykonaj model zabezpieczeń obiektu SQL Server za pomocą następujących Transact-SQL słowa kluczowe: Tworzenie dotacji, ODMÓW, ALTER, kontroli, własność, odwołania, wykonanie, VIEW DEFINITION i REVOKE.

Ostrzeżenie

Uprawnienie Kontrola tabela oznacza wszystkie uprawnienia na typie tabela.

Powiązanie schematu jest ustanawiane, gdy funkcja, w którym występuje instrukcja DECLARE określa Z SCHEMABINDING.Typ tabela jest parametr w rutynowych lub określonym SCHEMABINDING, na typ zdefiniowany przez użytkownika tabela wymagane jest uprawnienie odwołania.W innych przypadkach ustanowione nie powiązanie schematu i odwołania uprawnienie nie jest wymagana w tabela zdefiniowanej przez użytkownika.

Aby zadeklarować zmienną Tabela używa tabeli zdefiniowanej przez użytkownika, wymagane jest uprawnienie EXECUTE na tej tabeli zdefiniowane przez użytkownika.

Ostrzeżenie

Opcję KASKADOWO nie są wymuszane dla użytkownika tabela typ uprawnienia, ponieważ tabela zdefiniowanej przez użytkownika nie może zostać osadzona w definicji dowolnego typu.

Przykłady

A.Tworzenie tabela zdefiniowanej przez użytkownika

Poniższy przykład przedstawia sposób tworzenia tabela zdefiniowanej przez użytkownika.

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

Poniższy przykład pokazuje, jak uprawnienia można odwołany na typ określonej tabela zdefiniowanej przez użytkownika.REFERENCES Uprawnienie jest odwołany z użytkownika o nazwie JoAnna na typ zdefiniowany przez użytkownika tabela CustomerListType jest w ramach schematu relacyjnego mySchema w bazie danych myDatabase.

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