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.
See Also