Wykonywanie operacji na typy zdefiniowane przez użytkownika
Można wykonywać różne operacje na wystąpień typów zdefiniowanych przez użytkownika.Operacje te obejmują:
Wywoływanie metod lub pobierania właściwości typ zdefiniowany przez użytkownika.
Konwersję typów danych wydajności.
Zwracanie wartości typ zdefiniowany przez użytkownika do klient SQL.
Za pomocą klauzul ORDER BY.
Tworzenie indeksów w kolumnach typ zdefiniowany przez użytkownika.
Tworzenie obliczona kolumn.
Wywoływanie metod lub pobierania właściwości typów zdefiniowanych przez użytkownika
Można wywołać metoda lub pobrać właściwość typ zdefiniowany przez użytkownika, gdziekolwiek wartość skalarna wyrażenie może być wyświetlana.Musi mieć uprawnienie EXECUTE do typu.Metody, które zmieniają stan danych poza instrukcja UPDATE zostanie wykonana, ale zmiany zostaną zignorowane, ponieważ tych metod nie są dozwolone w kwerendach.
Ciągi, które są zwracane przez użytkownika typu metody założono sortowanie bazy danych, w którym utworzono typ zdefiniowany przez użytkownika, niezależnie od bieżącej bazy danych.
Przestroga |
---|
Metody i właściwości, które są używane w instrukcji SELECT nie może mieć skutki uboczne.Metoda używana w instrukcja SELECT ma efekty uboczne, wyniki nie są przewidywalne. |
Przestroga |
---|
Podczas wywołania metoda lub właściwość wystąpić przeciwko typów zdefiniowanych przez użytkownika, nad którym kolumna obliczanas są tworzone i wywoływanie odbywa się w kontekście operacji na kolumna obliczana, nie są sprawdzane uprawnienia wykonywania na typie.Zamiast tego uprawnienia są sprawdzane podczas kolumna obliczana jest tworzony. |
Wywoływanie metoda lub pobrać właściwość typ zdefiniowany przez użytkownika
Ostrzeżenie
SQL Server Management Studio Zwraca typ zdefiniowany przez użytkownika wartości reprezentacja binarna.Do zwracania wartości typ zdefiniowany przez użytkownika w formacie XML lub ciąg, użyj RZUTOWANIA lub konwersji.
Wykonuje konwersje typów danych zdefiniowanych przez użytkownika typów
Niejawne i jawne konwersji typów zdefiniowanych przez użytkownika można wykonywać, jak opisano w poniższej tabela.
|
ABY: Typ zdefiniowany przez użytkownika |
Binary |
nvarchar |
XML |
---|---|---|---|---|
OD: Typ zdefiniowany przez użytkownika |
|
Jawne |
Jawne |
Niejawne |
Binary |
Niejawne |
|
|
|
nvarchar |
Niejawne |
|
|
|
XML |
Niejawne |
|
|
|
Poniższy przykład jawnie konwertuje wystąpienia typ zdefiniowany przez użytkownika ComplexNumber do xml i wywołuje wyrażenie XQuery nad typie.
DECLARE @c ComplexNumber
SET @c = CONVERT(ComplexNumber, '(1,2i)')
SELECT CAST(@c AS xml).query('//Real/text()')
Poniższy przykład niejawnie konwertuje xml danych do wystąpienia typ zdefiniowany przez użytkownika ComplexNumber.
DECLARE @x xml, @u ComplexNumber
SET @x = '<ComplexNumber><Real>100</Real><Imaginary>4</Imaginary></ComplexNumber>'
SET @u = @x -- implicit convert
SELECT @u.ToString()
Aby uzyskać więcej informacji, zobacz CAST i CONVERT (Transact-SQL).
Zwracanie wartości Typ zdefiniowany przez użytkownika do klienta SQL
Gdy kolumna lub wyrażenie typ zdefiniowany przez użytkownika jest zwracany do klient SQL programu SELECT lub instrukcja pobrania, sposób interfejs API klient uzyskuje dostęp do kolumna zależy, czy interfejs API klient jest API zarządzanego (ADO.NET) lub w niezarządzanych interfejsu API (ODBC lub OLE DB).Jeśli klient używa obiektów ADO.NET, może pobrać wystąpienie typu jako wartość binarna za pomocą GetValue metoda na SqlDataReader klasy lub obiektu.Klient używa OLE DB, klient otrzyma wartości typ zdefiniowany przez użytkownika jako wartość binarna.Klient używa ODBC, klient otrzyma wartość typ zdefiniowany przez użytkownika jako tylko wartość binarna.
WEDŁUG PORZĄDKU, według grupy i klauzule według PARTYCJI przy użyciu typów zdefiniowanych przez użytkownika
Można wykonywać operacje ORDER BY, grupy oraz PARTYCJI z typów zdefiniowanych przez użytkownika, jeśli obsługuje typ binarny zamawiania.Typ jest plikiem binarnym zamówione, jeśli ma on IsByteOrdered flagi zestaw na wartość true w SqlUserDefinedType atrybut, który jest określony jako część definicji typu.Ta flaga wskazuje, że reprezentacja binarna typu jest semantycznie prawidłowej dla tego typu.
Tworzenie indeksów w kolumnach typ zdefiniowany przez użytkownika
Jeśli obsługuje typ binarny zamawiania, można utworzyć indeksy na kolumnach typ zdefiniowany przez użytkownika.Można również utworzyć indeksy na kolumna obliczane zdefiniowanymi jako wywołania metod z kolumna typ zdefiniowany przez użytkownika, jak metoda są oznaczone deterministyczny.Aby uzyskać więcej informacji, zobacz CLR typów zdefiniowanych przez użytkownika.
Zobacz także