Udostępnij za pośrednictwem


Using and Modifying Instances of User-defined Types

Można pracować z typów zdefiniowanych przez użytkownika w następujący sposób:

  • Tworzenie tabeli z kolumnami typ zdefiniowany przez użytkownika

  • Wstawianie i modyfikowanie wartości kolumna typ zdefiniowany przez użytkownika

  • Przy użyciu typ zdefiniowany przez użytkownika jako zmienna lub parametr

Tworzenie tabel, które z kolumny typ zdefiniowany przez użytkownika

Można utworzyć tabela zawierającej kolumna typ zdefiniowany przez użytkownika, przez podanie nazwy kolumn i odwoływania się do nazwy typu.Jest to podobny sposób, jak utworzyć kolumny, które składają się z typami danych opartych na systemie lub typów alias.Aby utworzyć kolumna na język (CLR) w czasie wykonywania przez użytkownika typu wspólnego, musi mieć uprawnienie materiały referencyjne w typie.

Aby utworzyć tabela z kolumnami typ zdefiniowany przez użytkownika

Wstawianie i modyfikowanie wartości kolumna typ zdefiniowany przez użytkownika

Można wstawiać i modyfikować wartości kolumna i zmieniać wartości zmiennych typ zdefiniowany przez użytkownika i parametry.

Uwaga

Typy zdefiniowane przez użytkownika nie można zmodyfikować po ich utworzeniu, ponieważ zmiany mogą unieważnić danych w tabelach lub indeksy.Aby zmodyfikować typu, należy albo upuszczanie typu i następnie odtworzyć go lub wydać instrukcję SQL ALTER MONTAŻOWYCH przy użyciu klauzula WITH NIEZAZNACZONE dane.Aby uzyskać więcej informacji zobaczALTER ASSEMBLY (Transact-SQL).

Można wstawić lub zmodyfikować wartości dla kolumny typ zdefiniowany przez użytkownika, wykonując następujące czynności:

  • Podanie wartości w SQL Server Typ danych systemu, tak długo, jak typ zdefiniowany przez użytkownika obsługuje bezpośrednia lub pośrednia konwersję z tego typu. W poniższym przykładzie przedstawiono sposób aktualizacji wartości kolumna typ zdefiniowany przez użytkownika Point Przy wyraźnie konwersja z typu ciąg:

    UPDATE Cities
    SET Location = CONVERT(Point, '12.3:46.2')
    WHERE Name = 'Anchorage'
    
  • metoda, oznaczone jako mutator, z typ zdefiniowany przez użytkownika w celu wykonania aktualizacji.W poniższym przykładzie wywoła metoda mutator typu punkt called SetXY które aktualizacje stanu wystąpienie typu:

    UPDATE Cities
    SET Location.SetXY(23.5, 23.5)
    WHERE Name = 'Anchorage'
    

    Uwaga

    SQL Server Zwraca błąd, jeśli mutator metoda jest wywoływana na Transact-SQL wartość null lub nową wartość wyprodukowane przez mutator metody jest zerowy.

  • Modyfikowanie wartości właściwość lub publiczne pole Typ zdefiniowany przez użytkownika.Wyrażenie, które podaje wartość musi być niejawnie podlegające konwersji na typ właściwość.W poniższym przykładzie Modyfikuje wartość właściwość X Typ zdefiniowany przez użytkownika punkt:

    UPDATE Cities
    SET Location.X = 23.5
    WHERE Name = 'Anchorage'
    

    Aby zmienić inne właściwości tej samej kolumna typ zdefiniowany przez użytkownika, wystawiać wielu instrukcji UPDATE lub wywołaj mutator metoda tego typu.

W poniższym przykładzie wstawia wartości typu Point do tabela:

INSERT INTO Cities (Name, Location)
VALUES ('Anchorage', CONVERT(Point, '23.5, 23.5'))

Aby wstawić wartość typ zdefiniowany przez użytkownika, do tabela lub widoku

  • INSERT

  • Aby zaktualizować wartości typ zdefiniowany przez użytkownika do tabela lub widoku

UPDATE

Przy użyciu typ zdefiniowany przez użytkownika jako zmienna lub parametr

You can declare a Transact-SQL variable, or the parameter of a Transact-SQL or Microsoft .NET Framework function or procedure, to be of a user-defined type.Obowiązują następujące reguły:

  • Musisz mieć uprawnienie wykonać typu.

  • Tworząc funkcja, procedura przechowywana lub wyzwalacz, który zawiera deklaracja typ zdefiniowany przez użytkownika z wiązanie schematu, musisz mieć uprawnienie materiały referencyjne w typie.

Jeśli użyta zostanie nazwa jednej części SQL Server będzie sprawdzić typ odwołania w następującej kolejności:

  1. Schemat bieżącego użytkownika w bieżącej bazie danych.

  2. Schemat dbo w bieżącej bazie danych.

  3. System macierzysty-odstęp.

Aby zadeklarować typ zdefiniowany przez użytkownika jako języka Transact-SQL, zmiennej lub parametru funkcja lub procedury

Ograniczenia na korzystanie z typów zdefiniowanych przez użytkownika

Podczas tworzenia i pracy z typów zdefiniowanych przez użytkownika, należy wziąć pod uwagę następujące kwestie:

  • Nie można zdefiniować długość, skalę, precyzję lub inne metadane, podczas tworzenia typ zdefiniowany przez użytkownika w SQL Server.

  • kolumna, zmiennej lub parametru nie można zadeklarować się typ zdefiniowany przez użytkownika, który jest zdefiniowany w innej bazie danych.Aby uzyskać więcej informacji zobaczUsing User-defined Types Across Databases.

  • Można określić, czy typ zdefiniowany przez użytkownika jest taka sama, jak jeden wstępnie zdefiniowana, nie porównać identyfikator typu, ponieważ jest prawidłowe tylko w przypadku obowiązywania typu zdefiniowanego przez użytkownika, mogą być odzyskane.Zamiast tego należy porównać nazwę typu CLR i nazwa wirtualny plik dziennika four-part bajtów wirtualny plik dziennika.

  • sql_variant kolumny nie może zawierać wystąpienia typ zdefiniowany przez użytkownika.

  • W przypadku typów zdefiniowanych przez użytkownika nie można użyć jako wartości domyślne w CLR procedury, funkcji lub wyzwalaczy lub w funkcji partycji.

  • W przypadku typów zdefiniowanych przez użytkownika nie może odwoływać się w kolumnach obliczanych table zmienne.