Sql语句,创建字段后,如何对字段格式进行设置?

CREATE TABLE [商品明细] ([ID] Autoincrement(1,1) Primary Key,[品名] Char(50) With Comp,[单价] Money default 0,[修改日期] DateTime)以上是我目前用的创建表的Sql语句如何在单价字段设置为货币格式!见图哈哈~
图片这里!

从图片来看这是ACCESS数据库。Jet引擎的数据定义语言功能比较弱,也比较繁琐。例如你无法用Create Table 或 Alter Table 来定义字段的默认值、设置设置可重复的索引(但支持唯一索引)、定义除非NULL以外形式的约束等。

下面是ACCESS Jet引擎可以识别的SQL数据定义代码,生成提问附图所示数据表“商品明细”:
CREATE TABLE 商品明细 (ID Counter CONSTRAINT kyName_ID Primary Key, 品名 TEXT(50),单价 Money Not Null ,修改日期 DateTime);

如果已经创建了商品明细表,但是单价字段不是货币类型,现在要改为货币类型,则可运行下列SQL查询:
ALTER TABLE 商品明细 ALTER COLUMN 单价 Money;

注意:
CREATE TABLE和 ALTER TABLE 无法定义默认值,故上面代码没有为“单价”字段定义默认值0,kyName_ID 是索引别名(必须要起一个索引名),Counter 为自动编号。

如果需要用代码的方式实现复杂的数据结构操作,建议使用ADOX数据访问对象扩展类库。它完全支持所有手动定义ACCESS数据结构的操作,诸如创建ACCESS数据库、创建\修改\删除数据表、创建索引、定义约束、定义表间关系等等。其实现手法为编程的方式与运行SQL查询的方式有很大的区别。楼主有兴趣的话,可以去查阅有关技术资料。追问

我要求的是修改字段的格式!

追答

严格地讲ACCESS字段的“格式”属性并不属于数据定义范围,它只是决定字段的显示布局,也就用access表对象查看数据表时该字段下数据的显示外观。

用SQL数据定义查询创建数据表后再设置货币类型字段的“格式”设置为“货币”其实没有什么意义,因为对于“货币”类型字段创建表后即使不将其“格式”属性设置为“货币”(默认格式为空白),系统也会自动将该字段的外观显示为“货币”形式。反倒是不想看到“货币”格式时,改为其它格式显示才有意义,例如改为“常规数字”后就不会看到¥1,501.25这种形式的数据了,实际显示数字为(1501.25)。货币类型字段“格式”设置为空白或“货币”都会显示“货币”形式外观。字段的“格式”属性只是影响其外观,对数据本身的实际值无任何影响。

目前我暂时未发现除手动设置字段“格式”属性以外的办法,包括ACCESS VBA(用窗体或报表显示数据时使用控件的FORMAT属性可以,但是数据表不行)、JET SQL数据定义语言、DAO、ADO以及之前提到的ADOX都不存在相关的属性和方法。貌似只能手动设置了

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-03-27
你用的什么数据库。各种数据库有一点小的差异。追问

access!

第2个回答  2013-03-27
alter table 商品明细 modify(单价 type);追问

我的这条Sql语句要怎么改?CREATE TABLE [商品明细] ([ID] Autoincrement(1,1) Primary Key,[品名] Char(50) With Comp,[单价] Money default 0,[修改日期] DateTime)