Aracılığıyla paylaş


Kullanıcı tanımlı türler üzerinde işlem gerçekleştirme

Çeşitli kullanıcı tanımlı türler örneklerini işlemleri gerçekleştirebilir.Bu işlemler şunları içerir:

  • Özelliklerini alma ya da yöntem çağrılırken bir kullanıcı tanımlı tür.

  • Gerçekleştirme veri dönüşümleri yazın.

  • kullanıcı tanımlı tür değerleri, bir SQL istemciye döndürülüyor.

  • ORDER BY yan kullanıyor.

  • kullanıcı tanımlı tür sütunlarındaki Dizinler yaratılıyor

  • Hesaplanan sütunlar oluşturma.

Yöntemleri çağırmadan veya kullanıcı tanımlı türler özelliklerini alınıyor

yöntem çağırmak veya özellik alın bir kullanıcı tanımlı tür skaler bir ifade görünen herhangi bir.yürütmek izni bağlı olması gerekir.Bir UPDATE deyim dışındaki verileri durumunu değiştirme yöntemleri yürütüldü ancak kesilebilir yöntemleri sorgularda izin verilmediğinden, değişiklikleri yoksayılacak.

Kullanıcı tanımlı tür yöntemleri tarafından döndürülen dizeleri harmanlama veritabanının kullanıcı tanımlı tür, bağımsız olarak geçerli veritabanı oluşturulduğu varsayılmıştır.

Uyarı

Yöntem ve özellikleri, SELECT deyimi içinde kullanılan yan etkileri olmalıdır.Bir deyim içinde kullanılan bir yöntem yan etkileri, sonuçlar deterministic değildir.

Uyarı

Yöntem veya özellik etkinleştirilmelerinde karşı üzerinden hesaplanan bir sütun oluşturulur ve hesaplanan sütun üzerinde bir işlem bağlamında çağırma oluşur kullanıcı tanımlı türler olduğunda tür yürütmek izinleri denetlenmez.Bunun yerine, izinler, hesaplanan sütun oluşturduğunuzda denetlenir.

yöntem çağırmak veya kullanıcı tanımlı bir türünde bir özellik almak için

Not

SQL Server Management Studio sayı kullanıcı tanımlı tür değerleri ikili gösterimi.kullanıcı tanımlı tür değerleri, dize veya XML biçiminde dönmek için , CAST ya da ÇEVIR'i kullanın.

Kullanıcı tanımlı türlerle veri türü Dönüşümlerini gerçekleştirme

Kullanıcı tanımlı türlerle örtülü ve açık dönüştürme aşağıdaki özetlendiği gibi gerçekleştirebilirsiniz tablo.

 

Kime:

kullanıcı tanımlı tür

Binary

nvarchar

XML

Kimden:

kullanıcı tanımlı tür

 

Açık

Açık

Kapalı

Binary

Kapalı

 

 

 

nvarchar

Kapalı

 

 

 

XML

Kapalı

 

 

 

Aşağıdaki örnek, açıkça bir örneğini dönüştürür kullanıcı tanımlı tür ComplexNumber Kime xml ve XQuery ifade üzerine ç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 veri örneğine 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).

kullanıcı tanımlı tür değerleri, bir SQL istemciye döndürülüyor

Bir SQL istemci sonucunda, bir SELECT veya GETIRME ifade için bir sütunu veya ifade kullanıcı tanımlı bir tür döndürdü, istemci API sütun eriştiği yolu olup olmadığını API istemci yönetilen bir API (ADO.NET) veya yönetilmeyen bir API (ODBC veya OLE DB) bağlıdır.Istemci, ADO.NET kullanıyorsa, istemci türü örnek bir ikili değer kullanarak alabilirsiniz GetValue yöntem SqlDataReader sınıfı veya bir nesne olarak. Istemci, OLE DB kullanıyorsa, istemci bir ikili değer kullanıcı tanımlı tür değerleri alırsınız.Istemci ODBC kullanıyorsa, istemci, yalnızca bir ikili değer kullanıcı tanımlı tür değerini alırsınız.

ORDER BY, GROUP BY ve PARTITION BY yan tümcesi, kullanıcı tanımlı türlerle kullanma

Ikili sıralama türünü destekliyorsa, kullanıcı tanımlı türlerle ORDER BY, GROUP BY ve PARTITION BY işlemleri gerçekleştirebilir.Varsa, sipariş edilen ikili türüdür IsByteOrdered bayrak TRUE küme SqlUserDefinedType tür tanımında bir parçası olarak belirtilen öznitelik. Bu bayrak türü için bir ikili gösterimi türü için semantically doğru düzende gösterir.

Kullanıcı tanımlı tür sütun üzerinde dizin oluşturma

Ikili sıralama türünü destekliyorsa, kullanıcı tanımlı tür sütunlarındaki dizinler oluşturabilirsiniz.Yöntemleri deterministic işaretli olduğu sürece yöntem etkinleştirilmelerinde kapatmak, kullanıcı tanımlı tür sütun olarak tanımlanan hesaplanan sütunlarda dizinler oluşturabilirsiniz.Daha fazla bilgi için bkz:CLR kullanıcı tanımlı türler.