Kullanıcı tanımlı türler üzerinde işlemleri gerçekleştirme
Çeşitli kullanıcı tanımlı türlerin örnekleri üzerinde işlem gerçekleştirebilirsiniz.Bu işlemler şunları içerir:
Yöntemleri yürütmesini veya kullanıcı tanımlı tür özelliklerini alınıyor.
Gerçekleştirme veri türü dönüştürmeleri.
kullanıcı tanımlı tür değerleri döndüren sql istemci.
order by yan tümceleri kullanma.
kullanıcı tanımlı tür sütunlarındaki Dizinler oluşturuluyor.
Hesaplanan sütunlar oluşturma.
Yöntem çağırma veya kullanıcı tanımlı türler özellikleri alınıyor
yöntem çağırmak veya özelliğini almak bir kullanıcı tanımlı tür skaler ifade görünen her yere.Türü üzerinde execute izni olması gerekir.Bir update deyim dışında veri durumunu değiştirme yöntemleri yürütülen ancak kesilebilir yöntemleri sorgularda izin verilmez çünkü değişiklikler göz ardı edilir.
kullanıcı tanımlı tür, geçerli veritabanı bakılmaksızın oluşturulduğu veritabanı harmanlama türü kullanıcı tanımlı yöntemleri tarafından döndürülen dizeleri varsayalım.
![]() |
---|
Yöntemleri ve özellikleri select deyimleri kullanılan yan etkileri olması gerekir.Bir select kullanılan bir yöntem ise deyim yan etkileri var, sonuçlar deterministic olur. |
![]() |
---|
Yöntem veya özellik çağırmaları üzerinden hesaplanan bir sütun oluşturulur ve çağırma hesaplanan sütun üzerinde bir işlem bağlamında oluşur kullanıcı tanımlı türler karşı oluştuğunda türü üzerinde execute izinleri kontrol edilir.Bunun yerine, hesaplanan sütun oluştururken izinleri denetlenir. |
yöntem çağırmak veya bir özelliği almak için birkullanıcı tanımlı tür
Not
SQL Server Management Studio döner kullanıcı tanımlı tür değerler ikili gösterimi.Dize veya xml biçiminde kullanıcı tanımlı tür değerleri döndürmek için cast veya convert kullanın.
Kullanıcı tanımlı türleri ile veri türü dönüştürmeleri gerçekleştirmek
Kullanıcı tanımlı türler ile örtülü ve açık dönüştürme aşağıdaki özetlendiği gibi gerçekleştirebilirsiniz tablo.
|
İÇİN: Kullanıcı tanımlı türü |
Binary |
nvarchar |
XML |
---|---|---|---|---|
KİMDEN: Kullanıcı tanımlı türü |
|
Açık |
Açık |
Kapalı |
Binary |
Kapalı |
|
|
|
nvarchar |
Kapalı |
|
|
|
XML |
Kapalı |
|
|
|
Aşağıdaki örnek örneği açıkça dönüştürür kullanıcı tanımlı tür ComplexNumber için xml ve bir XQuery ifade it. üzerinden çağırır
DECLARE @c ComplexNumber
SET @c = CONVERT(ComplexNumber, '(1,2i)')
SELECT CAST(@c AS xml).query('//Real/text()')
Aşağıdaki örnek örtülü olarak dönüştürür xml örneğine veri kullanıcı tanımlı tür ComplexNumber.
DECLARE @x xml, @u ComplexNumber
SET @x = '<ComplexNumber><Real>100</Real><Imaginary>4</Imaginary></ComplexNumber>'
SET @u = @x -- implicit convert
SELECT @u.ToString()
Daha fazla bilgi için bkz: CAST ve CONVERT (Transact-SQL).
Bir sql istemcisi için kullanıcı tanımlı türü değerleri döndürme
Bir sütun veya kullanıcı tanımlı tür deyim bir sql istemci bir sonucu olarak bir seçin veya getirme deyim döndüğünde İstemcisi API sütun erişme biçimini mi istemci API'si bir yönetilen API (ado. bağlıdırnet) veya yönetilmeyen bir API (odbc veya ole db).ado istemci kullanıyorsa.net, istemci almak türünün örnek ikili değer kullanarak GetValue yöntem SqlDataReader , sınıf veya bir nesne.ole db istemcisi kullanıyorsa, istemci bir ikili değer kullanıcı tanımlı tür değerleri alırsınız.İstemci odbc kullanıyorsa, istemci yalnızca ikili değer kullanıcı tanımlı tür değeri alacaktır.
Sipariş by, Grup by ve bölüm by yan tümceleri ile kullanıcı tanımlı türler kullanma
İkili sıralama türünü destekliyorsa, order by, group by ve bölüm tarafından işlemleri kullanıcı tanımlı türleri ile gerçekleştirebilirsiniz.Onu varsa, sipariş edilen bir tür ikili IsByteOrdered bayrağı küme true SqlUserDefinedType öznitelik, belirtilen bir parçası olarak türü tanımı.Bu bayrak türü için ikili gösterimini gönderilmesinin doğru sırada türü olduğunu gösterir.
Kullanıcı tanımlı türü sütunlarındaki dizinler oluşturma
İkili sıralama türünü destekliyorsa, kullanıcı tanımlı tür sütunlarındaki dizinler oluşturabilirsiniz.Yöntem deterministic işaretlenmiş olduğu sürece de kapalı kullanıcı tanımlı tür sütun çağırmaları yöntemi olarak tanımlanan hesaplanan sütunlar üzerinde dizinler oluşturabilirsiniz.Daha fazla bilgi için bkz: clr kullanıcı tanımlı türler.