Aracılığıyla paylaş


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.

Dikkat notuDikkat

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.

Dikkat notuDikkat

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.