怎样读取和修改已有字段的默认值?

时间:2021-07-17 10:04:37
现在有个字段为IO默认值为2,请问怎么用SQL语句读取和修改?

11 个解决方案

#1


?
SELECT * FROM TABLE WHERE IO=2
UPDATE TABLE SET IO=3 WHERE IO=2

#2


我是问怎么用SQL语句读取和修改默认值

#3


查看默认值可以用系统存储过程sp_helpconstraint,后跟表名做参数
或者
select c.cdefault, 'DEFAULT on column ' + c.name + ' (bound with sp_bindefault)',
object_name(c.cdefault),object_name(c.cdefault), text, 'D '
from syscolumns c,syscomments m
where c.id = object_id('表名') and m.id = c.cdefault and ObjectProperty(c.cdefault, 'IsConstraint') = 1 and c.name='列名'

删除该约束名
ALTER TABLE 表名 DROP CONSTRAINT 约束名

重新添加约束名
alter table 表名  add constraint 约束名   default  '默认值' for 列名

#4


其中在Access的约束名搞不懂

#5


总算搞出来了,分享一下

要修改字段的默认值名

首先,必须用Jet-SQL方式打开,也就是说打字的链接字符为
provider=microsoft.jet.oledb.4.0;data source=c:\db.mdb

再次,书写SQL语句
Alter Table [表名] Alter column [字段名] varchar(50) default 新的默认值

最后,执行SQL语句必须用ADO的命令直接执行,不能用查询语句执行,如
set conn=server.createobject("adodb.connection")
conn.open connstr
conn.execute(sql)

#6


呵呵,楼主厉害 

#7


不过现在有个问题,怎么在不插入新记录时把默认值读出来?

#8


唉,怎么就没有人知道怎么读取Access默认值呢

#9


读取ACCESS默认值的方法总算通过曲线方式解决完成

如下

1.在别的表中设一条记录,专门用来记录各项数据的设置,如表[TableSet],字段[SettingName]是设置名,字段[SettionContent]是设置的值

2.在修改某表某字段的默认值同时,把默认值修改给表[TableSet]中字段[SettionContent]对应的值

3.读取默认值时就读表[TableSet]中字段[SettionContent]对应的值就是默认值了

#10



一 默认值
--得到字段的约束值
select com.text from syscolumns col left join syscomments com on col.cdefault =com.id
where col.name ='ischange'
--where col.name ='字段名'
--更详细信息
select c.name,o.name,m.text from syscolumns  c,sysobjects  o ,syscomments m
where c.id = o.id and c.cdefault =m.id and o.type = 'U'  
and c.name='IsChange'

二 约束的修改
   必须先删除,在去添加,不能直接修改约束

#11


我注册这个帐号就是为了回答这个问题的。随然问题已经过去两年了。我今天在网上搜了一天也没有搜到一个完美答案。
以下是我测试出来的一个答案

===功能:读取access字段默认值===
Dim catDB As ADOX.Catalog 'ADOX对象变量
Dim morenzhi As string
Set catDB = New ADOX.Catalog '设置ADOX
catDB.ActiveConnection = Conn '把数据库链接字符串conn赋给新建对象的activeconnection属性
MsgBox catDB.Tables(表名).Columns(字段名称).Properties("Default").Value '以对话形式把默认值输出。当然也可以把这句赋给一个文本框或变量。

#1


?
SELECT * FROM TABLE WHERE IO=2
UPDATE TABLE SET IO=3 WHERE IO=2

#2


我是问怎么用SQL语句读取和修改默认值

#3


查看默认值可以用系统存储过程sp_helpconstraint,后跟表名做参数
或者
select c.cdefault, 'DEFAULT on column ' + c.name + ' (bound with sp_bindefault)',
object_name(c.cdefault),object_name(c.cdefault), text, 'D '
from syscolumns c,syscomments m
where c.id = object_id('表名') and m.id = c.cdefault and ObjectProperty(c.cdefault, 'IsConstraint') = 1 and c.name='列名'

删除该约束名
ALTER TABLE 表名 DROP CONSTRAINT 约束名

重新添加约束名
alter table 表名  add constraint 约束名   default  '默认值' for 列名

#4


其中在Access的约束名搞不懂

#5


总算搞出来了,分享一下

要修改字段的默认值名

首先,必须用Jet-SQL方式打开,也就是说打字的链接字符为
provider=microsoft.jet.oledb.4.0;data source=c:\db.mdb

再次,书写SQL语句
Alter Table [表名] Alter column [字段名] varchar(50) default 新的默认值

最后,执行SQL语句必须用ADO的命令直接执行,不能用查询语句执行,如
set conn=server.createobject("adodb.connection")
conn.open connstr
conn.execute(sql)

#6


呵呵,楼主厉害 

#7


不过现在有个问题,怎么在不插入新记录时把默认值读出来?

#8


唉,怎么就没有人知道怎么读取Access默认值呢

#9


读取ACCESS默认值的方法总算通过曲线方式解决完成

如下

1.在别的表中设一条记录,专门用来记录各项数据的设置,如表[TableSet],字段[SettingName]是设置名,字段[SettionContent]是设置的值

2.在修改某表某字段的默认值同时,把默认值修改给表[TableSet]中字段[SettionContent]对应的值

3.读取默认值时就读表[TableSet]中字段[SettionContent]对应的值就是默认值了

#10



一 默认值
--得到字段的约束值
select com.text from syscolumns col left join syscomments com on col.cdefault =com.id
where col.name ='ischange'
--where col.name ='字段名'
--更详细信息
select c.name,o.name,m.text from syscolumns  c,sysobjects  o ,syscomments m
where c.id = o.id and c.cdefault =m.id and o.type = 'U'  
and c.name='IsChange'

二 约束的修改
   必须先删除,在去添加,不能直接修改约束

#11


我注册这个帐号就是为了回答这个问题的。随然问题已经过去两年了。我今天在网上搜了一天也没有搜到一个完美答案。
以下是我测试出来的一个答案

===功能:读取access字段默认值===
Dim catDB As ADOX.Catalog 'ADOX对象变量
Dim morenzhi As string
Set catDB = New ADOX.Catalog '设置ADOX
catDB.ActiveConnection = Conn '把数据库链接字符串conn赋给新建对象的activeconnection属性
MsgBox catDB.Tables(表名).Columns(字段名称).Properties("Default").Value '以对话形式把默认值输出。当然也可以把这句赋给一个文本框或变量。