Aracılığıyla paylaş


Kullanıcı tanımlı türler örnekleri değiştirme ve kullanma

Kullanıcı tanımlı türler'ile [NULL]'ı aşağıdaki şekillerde çalışabilirsiniz:

  • Kullanıcı tanımlı tür sütunlarla tablo oluşturma

  • Ekleme ve kullanıcı tanımlı tür sütun değerlerini değiştirme

  • Bir kullanıcı tanımlı tür değişken veya parametre kullanma

Kullanıcı tanımlı tür sütunları olan tablo oluşturma

kullanıcı tanımlı tür sütunlarındaki sütun adını sağlayarak ve tür adı başvuru içeren bir tablo oluşturabilirsiniz.Bu şekilde sistem tabanlı veri türleri veya diğer ad türleri oluşan bir sütun oluşturmak benzer.Bir ortak dil çalışma zamanı (CLR) kullanıcı tanımlı tür üzerinde bir sütun oluşturmak için , türüne BAşVURULAR izninizin olması gerekir.

Kullanıcı tanımlı tür sütunları içeren bir tablo oluşturmak için

Ekleme ve kullanıcı tanımlı tür sütun değerleri değiştirme

Ekleyebilir ve sütun değerleri değiştirin ve kullanıcı tanımlı tür değişken parametreleri ve değerleri değiştirin.

Not

Değişiklikler tablolar veya dizin verileri geçersiz, çünkü bunlar oluşturduktan sonra kullanıcı tanımlı türler değiştirilemez.Bir türünü değiştirmek için , ya tür bırakın ve sonra onu yeniden veya gerekir DENETLENMEYEN VERI, WITH yan tümce kullanarak, bir ALTER derleme deyim sorun.Daha fazla bilgi için bkz:ALTER derleme (Transact-SQL).

Eklemek veya kullanıcı tanımlı tür sütunlarındaki değerleri, aşağıdakileri yaparak değiştirebilirsiniz:

  • Bir değer sağlayan bir SQL Server Kullanıcı tanımlı tür örtülü veya açık dönüştürme türü desteklediği sürece sistem veri türü. Aşağıdaki örnek, bir değerin nasıl gösterir bir sütun kullanıcı tanımlı türü Point bir dizeden açıkça dönüştürerek:

    UPDATE Cities
    SET Location = CONVERT(Point, '12.3:46.2')
    WHERE Name = 'Anchorage'
    
  • Işaretlenmiş yöntem, bir mutator, güncelleştirme gerçekleştirmek için kullanıcı tanımlı tür.Aşağıdaki örnek türü mutator yöntem çağırır. nokta called SetXY Örnek türü durumu güncelleştirmelerini:

    UPDATE Cities
    SET Location.SetXY(23.5, 23.5)
    WHERE Name = 'Anchorage'
    

    Not

    SQL Server bir hata döndürür bir mutator üzerinde yöntem etkin duruma getirilirTransact-SQL değer, boş veya yeni bir değer, tarafından üretilen bir mutator null yöntemidir.

  • Kullanıcı tanımlı tür genel alan veya özellik değerini değiştirme.Ifadenin değeri sağlayan özellik türüne örtülü dönüştürülebilir olmalıdır.Aşağıdaki örnek özelliğinin değerini değiştirir. X kullanıcı tanımlı tür nokta:

    UPDATE Cities
    SET Location.X = 23.5
    WHERE Name = 'Anchorage'
    

    Kullanıcı tanımlı tür aynı sütuna farklı özelliklerini değiştirmek için , birden çok UPDATE deyimleri sorun veya Çağır bir mutator yöntem türü.

Aşağıdaki örnek değer türü ekler. Point tabloya:

INSERT INTO Cities (Name, Location)
VALUES ('Anchorage', CONVERT(Point, '23.5, 23.5'))

Tablo veya Görünüm, kullanıcı tanımlı tür değeri eklemek için

  • INSERT

  • Bir kullanıcı tanımlı tür değeri için tablo veya görünümü güncelleştirmek için

UPDATE

Kullanarak bir kullanıcı tanımlı tür bir değişken veya parametre olarak

You can declare a Transact-SQL variable, or the parameter of a Transact-SQL or Microsoft .NET Framework function or procedure, to be of a user-defined type.Aşağıdaki kurallar uygulanır:

  • yürütmek izni bağlı olması gerekir.

  • Bir işlev, saklı yordam veya kullanıcı tanımlı tür bir şema cilt bildirim içeren bir tetikleyici oluşturursanız, BAşVURULAR izin bağlı olması gerekir.

Bir tek parça ad kullanıyorsanız SQL Server aşağıdaki sırada türü başvuru oluşturan görünecektir:

  1. Geçerli veritabanındaki geçerli kullanıcının şema.

  2. Şema, dbo geçerli veritabanında.

  3. Sistem yerel türü-boşluk.

Bir kullanıcı tanımlı bir işlev veya yordam parametresi veya Transact-SQL değişken olarak bildirmek için

Kullanıcı tanımlı türler kullanma ile ilgili kısıtlamalar

Oluşturma ve kullanıcı tanımlı türler ile çalışma, aşağıdakileri göz önünde bulundurun:

  • kullanıcı tanımlı tür oluşturduğunuzda, uzunluk, Ölçek, duyarlık veya diğer meta veriler tanımlayamazsınız SQL Server.

  • Bir sütun, değişken veya parametre, başka bir veritabanı içinde tanımlanan kullanıcı tanımlı bir tür olarak bildirilemez.Daha fazla bilgi için bkz:Veritabanları arasında kullanıcı tanımlı türleri'ni kullanma.

  • Bu yalnızca kullanıcı tanımlı tür süresince geçerli olduğundan ve iadesi bir kullanıcı tanımlı türü için önceden tanımlanmış bir aynı olup olmadığını belirlemek için , türü KIMLIĞINI karşılaştırma değil.Bunun yerine, CLR türü adını four-part derleme adının ve derleme baytları karşılaştırın.

  • sql_variant sütunlar, kullanıcı tanımlı tür örnekleri bulunamaz.

  • Kullanıcı tanımlı türler CLR yordamları, işlevleri veya Tetikleyicileri veya bölüm işlevleri varsayılan değerleri olarak kullanılamaz.

  • Kullanıcı tanımlı türler hesaplanan sütunlarda başvurulamaz. table değişkenler.