ACCESS中SQL语句修改字段默认值
ACCESS修改字段默认值的SQL语句写法如下:
alter table [table] alter column [numbers] long default 1
但是请注意ACCESS数据库中的SQL Jet引擎的默认语法为“ANSI-89 SQL ”语法,其数据定义功能比较弱,它不支持设置字段的默认值属性。
如果要以运行SQL数据定义语言的方法修改字段的默认值,就必须使用“ANSI-92 SQL” 语法。
那么在ACCESS数据库中如何实现SQL语句修改字段默认值呢?解决办法由两种:
1)使用ADO数据访问对象运行SQL数据定义查询语句
打开VBE编辑器——工具——引用
勾选“Microsoft ActiveX Data Objects 2.1 Library"或更高版本 点击“确认”按钮
在ACCESS窗体的某个事件过程里(例如命令按钮单击事件)编写下列代码:
Private Sub Command0_Click()
Dim cn As New ADODB.Connection
Set cn = CurrentProject.Connection
cn.Execute "alter table [table] alter column [numbers] long default 1" '此句修改默认值
End Sub
这样既可实现在ACCESS中用SQL语句修改字段默认值了。
2)将ACCESS数据库的SQL语法改为“ANSI-92 SQL”
菜单——工具——选项 设置SQL语法请参见下图:
这样前面给出的SQL语句就可以在ACCESS中直接运行了,因为已经转换了语法。这里给出的是ACCESS2003设置“SQL语法”的方法,若是2007、2010具体步骤会不太相同,但是基本原理是相通。
说明:
推荐使用第一种方法。至于第二种方法除非是新建数据库时就进行语法转换,否则最好避免使用。因为这样很可能会导致原来已经建立的查询运行结果不正确甚至无法运行,还可能导致其他设置出问题,例如有效性规则等不一而足。
这可是老鸟支招,如果感觉有用能给加点分吗?
table
set
numbers=1
这句是把现在table
表里所有的记录的numbers字段值设为1
你可以在ACCESS字段设置里将这个字段的默认值设为1,不过如果有记录的话此前的记录值还是为0
2013-04-17
例:ALTER TABLE 教师 ALTER COLUMN 办公室 CHAR(20) NOT NULL default "办公室"
2013-04-17
DROP COLUMN numbersGOALTER TABLE [dbo].[testtb] ADD DEFAULT (0) FOR numbers GO
2013-04-17