Access中怎么用sql语句建立GUID类型的自动编号的主键?

Devin_lee 2009-06-28 11:24:34
create table xxx(ID counter GUID primary key)
建立的表 ID 是integer类型的
怎么建立 GUID 类型的自动编号的主键?
...全文
2106 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
shuifengcun 2009-12-10
  • 打赏
  • 举报
回复
changechange 2009-08-24
  • 打赏
  • 举报
回复
JET SQL DDL 语句不支持你的要求。你可以用 VBA DAO 来实现。

或者可以用以下代码创建

如何用JET SQL DDL创建自动编号GUID字段《查询》
http://access911.net/index.asp?u1=a&u2=72FABE1E17DCEEF3







--911--
仙道彰 2009-06-29
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 libin_ftsafe 的回复:]
SQL code作者:cg1 摘自:access911.net 编辑:cg1 更新日期:2002-12-31 浏览人次:5477

专题地址:
http://www.access911.net/?kbid;71FAB01E15DC



简述:
用数据定义查询建立表的例子


阅读前需掌握:


难度等级:
等级未评定




看下面的查询

create table datatype(aa binary,bb bit,cc smallint,dd AUTOINCREMENT(2,4),ee money,ff datetime,gg guid,hh single default 50,ii d…
[/Quote]
dj3688 2009-06-29
  • 打赏
  • 举报
回复
帮顶吧
Devin_lee 2009-06-29
  • 打赏
  • 举报
回复
......

回答的都是不能解决问题的
--小F-- 2009-06-29
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 libin_ftsafe 的回复:]
SQL code作者:cg1 摘自:access911.net 编辑:cg1 更新日期:2002-12-31 浏览人次:5477

专题地址:
http://www.access911.net/?kbid;71FAB01E15DC



简述:
用数据定义查询建立表的例子


阅读前需掌握:


难度等级:
等级未评定




看下面的查询

create table datatype(aa binary,bb bit,cc smallint,dd AUTOINCREMENT(2,4),ee money,ff datetime,gg guid,hh single default 50,ii d…
[/Quote]

学习钻钻
palosky 2009-06-28
  • 打赏
  • 举报
回复
和楼主共同学习
Devin_lee 2009-06-28
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 libin_ftsafe 的回复:]
SQL code作者:cg1 摘自:access911.net 编辑:cg1 更新日期:2002-12-31 浏览人次:5477

专题地址:
http://www.access911.net/?kbid;71FAB01E15DC



简述:
用数据定义查询建立表的例子


阅读前需掌握:


难度等级:
等级未评定




看下面的查询

create table datatype(aa binary,bb bit,cc smallint,dd AUTOINCREMENT(2,4),ee money,ff datetime,gg guid,hh single default 50,ii d…
[/Quote]

这个在之前我已搜到过了,也试过了,没有得到想要的结果
ai_li7758521 2009-06-28
  • 打赏
  • 举报
回复
友情帮顶
子陌红尘 2009-06-28
  • 打赏
  • 举报
回复
这类问题去ACCESS版问更合适。
子陌红尘 2009-06-28
  • 打赏
  • 举报
回复
作者:cg1  摘自:access911.net  编辑:cg1  更新日期:2002-12-31  浏览人次:5477 

专题地址:
http://www.access911.net/?kbid;71FAB01E15DC



简述:
用数据定义查询建立表的例子


阅读前需掌握:


难度等级:
等级未评定




看下面的查询

create table datatype(aa binary,bb bit,cc smallint,dd AUTOINCREMENT(2,4),ee money,ff datetime,gg guid,hh single default 50,ii double,jj smallint,kk long,ll image,mm memo,nn text(100),oo yesno not null,pp TINYINT,qq numeric(18,4))


dd AUTOINCREMENT(2,4) 就是建立一个自动编号,初始为 2 ,步进为 4 的自动编号;
自动编号还有一种“自动编号 长整 随机”,代码为:[c] Autoincrement(1,1) default GenUniqueID();
“自动编号 GUID”JET SQL DDL 语句目前(JET DB 4.0)无法创建,必须用 ADOX 或者 DAO 来创建,详细情况请参考:
如何用JET SQL DDL创建自动编号GUID字段
http://access911.net/?kbid;72FABE1E17DCEEF3




image 表示 “ole 对象”字段
money 表示 “货币” 字段
yesno 表示 “是/否” 字段 或者 bit
memo 表示 “备注” 字段
smallint 表示 “数字”“整型” 字段
TINYINT 表示 “数字”“字节” 字段
text 表示 “文本” 字段,后面的括号中的数字表示文本的长度,最长255
numeric(18,4) 表示“数字”“小数”字段,精度18,数值范围4

其中还用到一个关键字 default 表示默认值,如果要设定默认值为 50 则可以写成 default 50
还有一个关键字 not null 表示“必填”为“是”


请注意,如果含有 DEFAULT 来定义默认值,上述语句要用 ADODB.CONNECTION.EXECUTE 等方法来执行,直接用上述代码建立一个查询无法保存或者运行,会得到 ACCESS 的错误提示。

添加一个自动编号字段的代码如下:
alter table ColorSet add c AUTOINCREMENT(1,1)


注意,一个表只能有一个自动编号字段。

添加两个文本字段的代码如下:
alter table abc add ct text(255),cx text(200)


要知道如何建立查询请单击这里
单击这里查看原文


SQL 数据类型
Microsoft Jet 数据库引擎 SQL 数据类型 由13个基本数据类型组成,它们是由 Microsoft Jet 数据库引擎和几个验证过的有效同义字定义的。

下面的表格列出了主要数据类型。这些同义字在 Microsoft Jet 数据库引擎 SQL 保留字中被识别。

数据类型 存储大小 说明
BINARY 每个字符占一个字节 任何类型的数据都可存储在这种类型的字段中。不需数据转换(例如,转换到文本数据)。数据输入二进制字段的方式决定了它的输出方式。
BIT 1 个字节 Yes 和 No ,以及只包含这两个数值之一的字段。
TINYINT 1 个字节 介于 0 到 255 之间的整型数。
MONEY 8 个字节 介于 – 922,337,203,685,477.5808 到 922,337,203,685,477.5807 之间的符号整数。
DATETIME
(清参阅 DOUBLE ) 8 个字节 介于 100 到 9999 年的日期或时间数值。
UNIQUEIDENTIFIER 128 个位 用于远程过程调用的唯一识别数字。
REAL 4 个字节 单精度浮点数,负数范围是从 –3.402823E38 到 –1.401298E-45,正数从1.401298E-45 到 3.402823E38,和 0。
FLOAT 8 个字节 双精度浮点数,负数范围是从 –1.79769313486232E308 到 –4.94065645841247E-324,正数从 4.94065645841247E-324 到 1.79769313486232E308,和 0。
SMALLINT 2 个字节 介于 –32,768 到 32,767 的短整型数。
INTEGER 4 个字节 介于 –2,147,483,648 到 2,147,483,647 的长整型数。
DECIMAL 17 个字节 容纳从 1028 - 1到 - 1028 - 1. 的值的精确的数字数据类型。你可以定义精度 (1 - 28) 和 符号 (0 - 定义精度)。缺省精度和符号分别是18和0。
TEXT 每一字符两字节(参见注意) 从零到最大 2,14 千兆字节。
IMAGE 视实际需要而定 从零到最大 2,14 千兆字节。用于 OLE 对象。
CHARACTER 每一字符两字节(参见注意) 长度从 0 到 255 个字符。


--------------------------------------------------------------------------------

注意

可以用ALTER TABLE 语句修正基数和增量。刚插进表中的行会有自动为基于新种值和增量值的列生成的值。如果新种和增长的值和以前的种值及增量匹配,就会造成复制。如果这个列是主键,复制值生成时可能导致错误。

定义成TEXT也称作MEMO)或CHAR(也称作有具体长度的 TEXT(n))的字段中的字符被储存在 Unicode 表示格式。Unicode字符一律需要两个字节存储每一字符。对于现有的主要包含字符数据的 Microsoft Jet数据库,这可能意味着数据库文件被转换成 Microsoft Jet 4.0格式时字长会增加将近一倍。然而,从前由单字节字符群(SBCS)指示的众多字符群的Unicode 表示可以很容易地被压缩成一个单字节。 有关的详细信息,参见 CREATE TABLE。如果用COMPRESSION属性定义CHAR列,数据存储时会自动被压缩,提取时解压缩。
------------------------------------------------------------------------------------


等效的 ANSI SQL 数据类型
下列表列出了 ANSI SQL 数据类型和等效的 Microsoft Jet 数据库引擎 SQL数据类型还有它们的有效同义字。并且列出了 等效的 Microsoft SQL服务器数据类型。

ANSI SQL
的数据类型 Microsoft Jet
SQL 的数据类型
同义字 Microsoft SQL
服务器数据类型
BIT,BIT VARYING BINARY(请参阅注意) VARBINARY,
BINARY VARYING
BIT VARYING BINARY, VARBINARY
不支持 BIT(请参阅注意) BOOLEAN,LOGICAL,LOGICAL1,YESNO BIT
不支持 TINYINT INTEGER2,SMALLINT TINYINT
不支持 COUNTER(参见注意) AUTOINCREMENT (参见注意)
不支持 MONEY CURRENCY MONEY
DATE,TIME,TIMESTAMP DATETIME DATE, TIME (参见注意) DATETIME
不支持 UNIQUEIDENTIFIER GUID UNIQUEIDENTIFIER
DECIMAL DECIMAL NUMERIC, DEC DECIMAL
REAL REAL SINGLE, FLOAT4, IEEESINGLE REAL
DOUBLE PRECISION,FLOAT FLOAT DOUBLE, FLOAT8, IEEEDOUBLE, NUMBER (参见注意) FLOAT
SMALLINT SMALLINT SHORT, INTEGER2 SMALLINT
INTEGER INTEGER LONG, INT, INTEGER4 INTEGER
INTERVAL 不支持 不支持
不支持 IMAGE LONGBINARY, GENERAL, OLEOBJECT IMAGE
不支持 TEXT (参见注意) LONGTEXT, LONGCHAR, MEMO, NOTE, NTEXT (参见注意) TEXT
CHARACTER, CHARACTER VARYING, NATIONAL CHARACTER, NATIONAL CHARACTER VARYING CHAR (参见注意) TEXT(n), ALPHANUMERIC, CHARACTER, STRING, VARCHAR, CHARACTER VARYING, NCHAR, NATIONAL CHARACTER, NATIONAL CHAR, NATIONAL CHARACTER VARYING, NATIONAL CHAR VARYING (参见注意) CHAR, VARCHAR, NCHAR, NVARCHAR


注意

ANSI SQL BIT数据类型与 the Microsoft Jet SQL BIT 数据类型不对应。而与 BINARY 数据类型对应。ANSI SQL 并没有等效于 Microsoft Jet SQL 的 BIT 的数据类型。
TIMESTAMP不再作为DATETIME的同义字被支持。
NUMERIC 不再作为 FLOAT或 DOUBLE的同义字被支持。NUMERIC现在被用作DECIMAL的同义字。
LONGTEXT字段总被储存于 Unicode 表示格式.
如果数据类型名 TEXT被使用而未说明任选长度,例如 TEXT(25), LONGTEXT字段会被创建。这使得 CREATE TABLE 语句能被写成让数据类型同 Microsoft SQL 服务器保持一致。
CHAR字段总被储存于 Unicode 表示格式,和 ANSI SQL NATIONAL CHAR 数据类型等效。
如果数据类型名 TEXT 被使用而未说明任选长度,例如 TEXT(25),则这一字段的数据类型与 CHAR 数据类型等效。这样既保持了对 Microsoft Jet应用程序的向后兼容,又使 TEXT 数据类型(没有长度说明) 能用 Microsoft SQL服务器定位。


本站文章旨在为该问题提供解决思路及关键性代码,并不能完成应该由网友自己完成的所有工作,请网友在仔细看文章并理解思路的基础上举一反三、灵活运用。

access911.net 原创文章,作者本人对文章保留一切权利。
如需转载必须征得作者同意并注明本站链接

34,597

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧