2014-02-11 43 views
0

我想将默认值添加到现有的表,但它根本不工作。我希望在我的表格中添加数据时看到'NO',但没有发生。我不确定发生了什么,或者我的语法在这里是错误的。请帮忙。谢谢如何在sql服务器的现有表中添加默认值

ALTER TABLE [myTable] 
ADD CONSTRAINT [DF_myTable_FLAG] DEFAULT ('NO') FOR [FLAG] 

此列的数据类型为varchar

+4

你能向我们展示你用来插入行的插入语句吗? – meziantou

+1

首先,这仅适用于添加了**新行**,并且只有当您**没有明确指定INSERT语句中该列的值时才起作用。语法看起来不错 - 但你怎么**插入**你的新行? –

回答

3

只有新记录才会得到默认值。

测试此:

CREATE TABLE #TEST(NAME VARCHAR(5), FLAG VARCHAR(3)) 
INSERT INTO #TEST (NAME) SELECT 'DAVE' 
ALTER TABLE #TEST ADD CONSTRAINT [DF_TEST_FLAG] DEFAULT ('NO') FOR [FLAG] 
INSERT INTO #TEST (NAME) SELECT 'MOE' 

SELECT * FROM #TEST 

旧志必须手动更新。

相关问题