2012-02-17 17 views
8

SQL Server aşağıdaki ifadeyi vardır:SQL Server: ile yeni bir sütun eklemek ALTER

ALTER TABLE [dbo].[TruckTbl] 
ADD [TruckState] [bit] NULL DEFAULT 0; 

Bu ne yapacağız nasıl varolan kayıtları için 0.

için I herhangi YENİ kaydını yapabilirsiniz varsayılan etmektir deyimdeki ifadeleri al ve söyle de 0

Bir güncelleştirme yapabilirim ama yine de yukarıdaki ALTER deyiminde bir güncelleştirme yapmak için yapabileceğimi biliyorum. Diğer yanıta katılabilir rağmen

+0

sizin BIT alanı * gerçekten * null olmalı mı? Bu temelde bunu bir bistattan ziyade bir tristat yapar. Bu alan boş değerlere izin vermezse, önceki tüm kayıtlarınız sizin varsayılan değerinizi alırdı! – Jamiec

cevap

18

o sütunu mevcut tüm satırları ayarlarken eğer 0 için hiç null olması ve gelecek uçlar için bir varsayılan olması gerektiğini garip gelebilir WITH VALUES maddesini

ALTER TABLE [dbo].[TruckTbl] ADD [TruckState] [bit] NULL DEFAULT 0 WITH VALUES; 

kullanın . NULL'a bir sütun değeri olarak izin vermeniz gerekiyor mu?

+2

Havalı, asla bilmiyordum * bu * var. – Jamiec

0
ALTER TABLE {TABLENAME} 
ADD {COLUMNNAME} {TYPE} {NULL|NOT NULL} 
CONSTRAINT {CONSTRAINT_NAME} DEFAULT {DEFAULT_VALUE} 
[WITH VALUES] 

Örn

ALTER TABLE Temp 
ADD ID int NOT NULL DEFAULT(1) 
+0

Yorum ekle neden bunu reddettiniz. –

İlgili konular