Share via


Kullanıcı tanımlı türler veritabanları arasında kullanma

kullanıcı tanımlı tür oluşturduğunuzda, tek bir veritabanı için yereldir.Bu nedenle, başka bir veritabanı sütun tanımında bir veritabanı içinde tanımlanan kullanıcı tanımlı tür kullanılamaz.Ancak, aynı kullanıcı tanımlı tür kayıtlı olduğu ve iki veritabanlarında erişilebilen, bir veritabanından başka bir veritabanında kullanmak için kullanıcı tanımlı tür değeri dönüştürebilirsiniz.Aşağıdakileri yapmak istediğinizde bu özellik kullanışlıdır:

  • Farklı bir veritabanı içinde tanımlanan bir saklı yordam çağrısı.

  • İki farklı veritabanlarında tanımlanan tabloları üzerinden sorgulama.

  • Bir veritabanından veri seçmek ve diğerinin içine yerleştirin.

Örneğin, varsayalım, kullanıcı tanımlı tür u1 veritabanı AB1 ve db2 veritabanı içinde oluşturulur.Saklı yordam p2 yalnızca veritabanı db2'de oluşturulan ve bir tür u1 parametre alır.Proc p2 türü u1 örnek ile birlikte veritabanı AB1 çağırabilirsiniz.

USE db1
DECLARE @u u1
EXEC db2.dbo.p2 @u
GO

Başka bir örnek geçici tablo doldurma içerir tempdb ile sonuçlar sorgu.kullanıcı tanımlı tür kayıtlı olmalıdır tempdb için bu işlemin başarılı olması için.

INSERT INTO #t SELECT * FROM T 

kullanıcı tanımlı tür kaydediliyor tempdb türü kullanıcı tanımlı bir tablo değişkeni kullandığınızda veya bir imleç bir worktable kullanıcı tanımlı tür kullandığında gerekli değildir.

Kullanıcı tanımlı türler arasında veritabanları kullandığınızda, aşağıdaki unutmayın:

  • Türleri aynı clr adı da dahil olmak üzere aynı ada sahip ve aynı uygulanması gereken derleme hem veritabanlarındaki.İki veritabanı derlemeleri aynı adı, kesin ad, kültür, sürüm, kod erişim iznine sahip oldukları, aynı kümeve ikili içeriği.

  • Seçmesi ve sorguda başvurulan her kullanıcı tanımlı tür sütun üzerinde yürütme izinleri gerekir.Bu izinlerin her sütun tanımlanan veritabanı ile ilgili kontrol edilir.

  • Bir derlemede uygulanan bir tür başka bir derlemede yöntem çağırır, çapraz derleme çağrısı kullanıcı tanımlı tür bir sorgu veritabanları geçmesini olmadan verilmiş gibi aynı şekilde denetlenir.