هل يمكنني إنشاء قيود افتراضية مسماة في عبارة ADD COLUME في SQL Server؟
-
04-10-2019 - |
سؤال
في 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)
لا تنتمي إلى StackOverflow