1.Access的联合查询更新需要这样写:
update b1 inner join b2
on b1.id=b2.b1id set b1.sale=b2.sl ;
但是:
update b1 inner join (select b1ld,count(id) as sl from b3 group by b1ld) as b2
on b1.id=b2.b1id set b1.sale=b2.sl ;
会报错:
操作必须使用一个可更新的查询
这是因为ACCESS数据库Jet引擎比较弱,它支持用实际存在的字段来更新某个字段值,
但是不支持用计算出来的字段来更新数据表。
2.Access 修改字段数据类型
Access通过SQL语句修改表tb字段aa的数据类型:
cmd.CommandText = "ALTER TABLE tb ALTER COLUMN aa Short";
cmd.ExecuteNonQuery();
ALTER TABLE tb ALTER COLUMN aa Byte 数字[字节]
ALTER TABLE tb ALTER COLUMN aa Long 数字[长整型]
ALTER TABLE tb ALTER COLUMN aa Short 数字[整型]
ALTER TABLE tb ALTER COLUMN aa Single 数字[单精度
ALTER TABLE tb ALTER COLUMN aa Double 数字[双精度]
ALTER TABLE tb ALTER COLUMN aa Currency 货币
ALTER TABLE tb ALTER COLUMN aa Char 文本
ALTER TABLE tb ALTER COLUMN aa Text(n) 文本,其中n表示字符数
ALTER TABLE tb ALTER COLUMN aa Binary 二进制
ALTER TABLE tb ALTER COLUMN aa Counter 自动编号
ALTER TABLE tb ALTER COLUMN aa Memo 备注
ALTER TABLE tb ALTER COLUMN aa Time 日期/时间
但是不可以设置默认值。需要用如下方法代替:
update shiji set 比例=1 where 比例 is null