论文部分内容阅读
【摘要】在教学过程中,经常有学生问到,在SQL server2000中如何利用SQL语句创建、修改、删除默认值约束,如何列出具有默认值的列等等问题,因此,笔者把各种问题的解决方法归纳了一下,以供大家参考。
【关键词】SQL serverSQL语句;默认值;约束
【中图分类号】G642 【文献标识码】A 【文章编号】1001-4128(2010)06-0023-01
SQL Server 2000系统为了保证数据和一致性和准确性,提供了四种类型的约束来实现数据完整性。其中的一种是域的完整性,域的完整性又是通过限制数据类型、检查约束、输入格式、外键约束、默认值、非空约束等多种方法来实现的。以下就是笔者通过在教学过程中积累下来的经验,对使用SQL语句实现域的完整性中默认值约束的方法的总结。
1 如何创建默认值约束
在对数据库中的表进行数据输入时,为了避免输入大量重复记录的字段,减少输入量,我们就可以为该字段指定默认值,这样,如果用户未向该字段输入数据时,系统便会将所定义的值提供给这一字段。
那么如何创建默认值约束呢?
1.1 在创建表的同时定义默认值约束。
语法格式:
CREATETABLE表名
(……
字段名 数据类型及长度 DEFAULT默认值
……)
例如:创建Readers表的同时定义默认值约束,使“登记日期”列的默认值为系统日期。
CREATETABLEReaders
(读者编号int NOTNULL,
姓名 varchar(10) NOTNULL,
……
登记日期datetime NOTNULLDEFAULTgetdate())
1.2 在修改表时定义默认值约束。
语法格式:
ALTERTABLE表名
ADDCONSTRAINT[约束名]DEFAULT默认值FOR字段名
例如:假设已创建表Readers,添加默认值约束,使列“登记日期”的默认值为系统日期。
ALTERTABLEReaders
ADDCONSTRAINTDF_ReadersDEFAULTgetdate()FOR登记日期
2 如何删除默认值约束
语法格式:
ALTERTABLE 表名
DROPCONSTRAINT 约束名
在使用上述语句删除默认值约束的时候,一定要准确的输入约束名,可利用下面的语句查看指定表上的所有约束的类型及名称,然后再对所要删除的约束进行操作。
EXECSP_helpconstraint表名(查看指定表上的所有约束)
例如:删除表Readers中的默认值约束
EXEC SP_helpconstraint Readers(找到默认值约束的约束名'DF__readers1__登记日期')
GO
ALTERTABLEReaders
DROPCONSTRAINTDF__readers1__登记日期
3 如何修改默认值约束
如果需要对已经设置了默认值约束的字段的默认值进行修改,应该先删除对应的默认值约束,再重新定义新的默认值约束
例如:将表Readers中的默认值修改为2009-1-1
ALTERTABLEReaders
DROPCONSTRAINTDF__readers1__登记日期
GO
ALTERTABLEReaders
ADDCONSTRAINTDF_ReadersDEFAULT '2009-1-1'FOR 登记日期
GO
4 如何列出具有默認值的列
如果只想知道哪些表里哪一个字段具有默认值约束,默认值又是什么,我们可以通过下面的语句来实现。
语句如下:
SELECT SO.NAME AS 表名, SC.NAME AS 字段名, SM.TEXTAS默认值
FROMdbo.sysobjectsSO INNER JOIN dbo.syscolumns SC ON SO.id = SC.id
INNER JOINdbo.syscommentsSMONSC.cdefault = SM.id
WHERE SO.xtype = 'U'
ORDER BYSO.[name], SC.colid
以上就是我在教学过程当中总结的,有关SQL中的默认值约束的一些经验,希望对SQL Server的初学者们有所帮助。
参考文献
[1] 《SQL Server应用开发》北京阿博泰克北大青鸟技术有限公司作者:杨明等
[2] 《SQL Server 数据库应用教程》清华大学出版 作者:柴晟刘莹 蔡锦成等
[3] 《SQL Server》高等教育出版社 作者:廖世蓉 杨闯
【关键词】SQL serverSQL语句;默认值;约束
【中图分类号】G642 【文献标识码】A 【文章编号】1001-4128(2010)06-0023-01
SQL Server 2000系统为了保证数据和一致性和准确性,提供了四种类型的约束来实现数据完整性。其中的一种是域的完整性,域的完整性又是通过限制数据类型、检查约束、输入格式、外键约束、默认值、非空约束等多种方法来实现的。以下就是笔者通过在教学过程中积累下来的经验,对使用SQL语句实现域的完整性中默认值约束的方法的总结。
1 如何创建默认值约束
在对数据库中的表进行数据输入时,为了避免输入大量重复记录的字段,减少输入量,我们就可以为该字段指定默认值,这样,如果用户未向该字段输入数据时,系统便会将所定义的值提供给这一字段。
那么如何创建默认值约束呢?
1.1 在创建表的同时定义默认值约束。
语法格式:
CREATETABLE表名
(……
字段名 数据类型及长度 DEFAULT默认值
……)
例如:创建Readers表的同时定义默认值约束,使“登记日期”列的默认值为系统日期。
CREATETABLEReaders
(读者编号int NOTNULL,
姓名 varchar(10) NOTNULL,
……
登记日期datetime NOTNULLDEFAULTgetdate())
1.2 在修改表时定义默认值约束。
语法格式:
ALTERTABLE表名
ADDCONSTRAINT[约束名]DEFAULT默认值FOR字段名
例如:假设已创建表Readers,添加默认值约束,使列“登记日期”的默认值为系统日期。
ALTERTABLEReaders
ADDCONSTRAINTDF_ReadersDEFAULTgetdate()FOR登记日期
2 如何删除默认值约束
语法格式:
ALTERTABLE 表名
DROPCONSTRAINT 约束名
在使用上述语句删除默认值约束的时候,一定要准确的输入约束名,可利用下面的语句查看指定表上的所有约束的类型及名称,然后再对所要删除的约束进行操作。
EXECSP_helpconstraint表名(查看指定表上的所有约束)
例如:删除表Readers中的默认值约束
EXEC SP_helpconstraint Readers(找到默认值约束的约束名'DF__readers1__登记日期')
GO
ALTERTABLEReaders
DROPCONSTRAINTDF__readers1__登记日期
3 如何修改默认值约束
如果需要对已经设置了默认值约束的字段的默认值进行修改,应该先删除对应的默认值约束,再重新定义新的默认值约束
例如:将表Readers中的默认值修改为2009-1-1
ALTERTABLEReaders
DROPCONSTRAINTDF__readers1__登记日期
GO
ALTERTABLEReaders
ADDCONSTRAINTDF_ReadersDEFAULT '2009-1-1'FOR 登记日期
GO
4 如何列出具有默認值的列
如果只想知道哪些表里哪一个字段具有默认值约束,默认值又是什么,我们可以通过下面的语句来实现。
语句如下:
SELECT SO.NAME AS 表名, SC.NAME AS 字段名, SM.TEXTAS默认值
FROMdbo.sysobjectsSO INNER JOIN dbo.syscolumns SC ON SO.id = SC.id
INNER JOINdbo.syscommentsSMONSC.cdefault = SM.id
WHERE SO.xtype = 'U'
ORDER BYSO.[name], SC.colid
以上就是我在教学过程当中总结的,有关SQL中的默认值约束的一些经验,希望对SQL Server的初学者们有所帮助。
参考文献
[1] 《SQL Server应用开发》北京阿博泰克北大青鸟技术有限公司作者:杨明等
[2] 《SQL Server 数据库应用教程》清华大学出版 作者:柴晟刘莹 蔡锦成等
[3] 《SQL Server》高等教育出版社 作者:廖世蓉 杨闯