SORU
26 EYLÜL 2008, Cuma


Nasıl varsayılan kısıtlama. kullanarak bulabilirim?

Eğer verilen varsayılan kısıtlama varsa test etmeye çalışıyorum. Sysbojects tablo kullanmak istemiyorum, ama daha standart..

Bu tablo ve birincil anahtar kısıtlamaları önce kontrol etmek için kullandım, ama varsayılan kısıtlamaları hiçbir yerde göremiyorum.

Yok öyle değil mi? (MS SQL Server 2000) kullanıyorum.

EDİT: kısıtlama adını almak için arıyorum.

CEVAP
15 Mart 2012, PERŞEMBE


Anladığım kadarıyla, varsayılan değer kısıtlamaları ISO standardının bir parçası değildir. görünür. . Cross-platform olduğu için görev bu tür için en iyi seçim gibi görünüyor, ama eğer bu bilgi mevcut değil eğer bir nesne Katalog görünümleri kullanmanız gerekir (.* sys) SQL Server 2005 ve daha sonra kaldırılmış olan sistem Tablo görünümleri, yerine.

Aşağıda @user186476 olarak hemen hemen aynı cevap. Belirli bir sütun için varsayılan değer adı kısıtlaması verir. (İçin non-SQL Server kullanıcıları, ihtiyacınız adı varsayılan sipariş için damla, ve eğer yok adı varsayılan kısıtlama kendini, SQL Server oluşturur çılgın ismi gibi "DF_TableN_Colum_95AFE4B5". Daha kolay gelecek şema değiştirmek için yapmak için, her zaman açıkça kısıtlamaları adı!)

-- returns name of a column's default value constraint 
SELECT
    default_constraints.name
FROM 
    sys.all_columns

        INNER JOIN
    sys.tables
        ON all_columns.object_id = tables.object_id

        INNER JOIN 
    sys.schemas
        ON tables.schema_id = schemas.schema_id

        INNER JOIN
    sys.default_constraints
        ON all_columns.default_object_id = default_constraints.object_id

WHERE 
        schemas.name = 'dbo'
    AND tables.name = 'tablename'
    AND all_columns.name = 'columnname'

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Lin Steven

    Lin Steven

    17 EKİM 2006
  • Migs351

    Migs351

    3 HAZİRAN 2007
  • paulandstorm

    paulandstorm

    4 EYLÜL 2006