هل يمكنني إنشاء قيود افتراضية مسماة في عبارة ADD COLUME في SQL Server؟

StackOverflow https://stackoverflow.com/questions/3770015

سؤال

في SQL Server ، لدي عمود جديد على جدول:

ALTER TABLE t_tableName 
    ADD newColumn NOT NULL

يفشل هذا لأنني لا أحدد NULL دون تحديد قيود افتراضية. لا ينبغي أن يكون للجدول قيدًا افتراضيًا.

للتغلب على هذا ، يمكنني إنشاء الجدول مع القيد الافتراضي ثم إزالته.

ومع ذلك ، لا يبدو أن هناك أي طريقة لتحديد أن القيد الافتراضي يجب تسميته كجزء من هذا البيان ، وبالتالي فإن طريقي الوحيدة للتخلص منها الطاولة.

هذا هو فوضوي بعض الشيء/مطوّلة لعملية من المحتمل أن تحدث كثيرًا. هل لدى أي شخص أي حلول أفضل لهذا؟

هل كانت مفيدة؟

المحلول

هذا يجب أن يعمل:

ALTER TABLE t_tableName 
    ADD newColumn VARCHAR(50)
    CONSTRAINT YourContraintName DEFAULT '' NOT NULL

نصائح أخرى

ALTER TABLE t_tableName 
    ADD newColumn int NOT NULL
        CONSTRAINT DF_defaultvalue DEFAULT (1)
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top