求助,数据库ID方面的问题

csmark 2010-04-01 09:32:43
大家看看这是采用什么方式实现的。象这种001A4A32-E7B3-413D-B2AD-19AEFC1213EC样式的ID?
...全文
67 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
黄_瓜 2010-04-01
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 htl258 的回复:]
引用 5 楼 beirut 的回复:
用过,那时候我们用的varchar()存的 傻了一次
应该用uniqueidentifier 类型

能讲一下你当时用varchar存遇到了什么问题吗?
[/Quote]
呵呵,通常用它做id,代替自增id
如果用varchar,就把它当成一个字符串了。还很长,效率不好吧
用uniqueidentifier 存的是二进制,而且节省空间。
其他的也没啥了
csmark 2010-04-01
  • 打赏
  • 举报
回复
谢谢大家,问题解决了。顺便问下用VARCHAR存会遇到什么问题?
htl258_Tony 2010-04-01
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 beirut 的回复:]
用过,那时候我们用的varchar()存的 傻了一次
应该用uniqueidentifier 类型
[/Quote]
能讲一下你当时用varchar存遇到了什么问题吗?
永生天地 2010-04-01
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 beirut 的回复:]
用过,那时候我们用的varchar()存的 傻了一次
应该用uniqueidentifier 类型
[/Quote]
这个不就是char(36)吗,有什么不同
行者_ 2010-04-01
  • 打赏
  • 举报
回复
那个是GUID吧
SQL中用newid()生成
黄_瓜 2010-04-01
  • 打赏
  • 举报
回复
用过,那时候我们用的varchar()存的 傻了一次
应该用uniqueidentifier 类型
htl258_Tony 2010-04-01
  • 打赏
  • 举报
回复
IF NOT OBJECT_ID('[tb]') IS NULL
DROP TABLE [tb]
GO
CREATE TABLE [tb]([id] uniqueidentifier default newid(), a int)
INSERT [tb](a) select 1
GO
SELECT * FROM [tb]
/*
id a
-------------------------------------------------- -----------
7830906D-64D6-4A14-8379-034B1AB16F54 1

(1 行受影响)
*/
或这样
htl258_Tony 2010-04-01
  • 打赏
  • 举报
回复
IF NOT OBJECT_ID('[tb]') IS NULL
DROP TABLE [tb]
GO
CREATE TABLE [tb]([id] nvarchar(50) default newid(), a int)
INSERT [tb](a) select 1
GO
SELECT * FROM [tb]
/*
id a
-------------------------------------------------- -----------
7830906D-64D6-4A14-8379-034B1AB16F54 1

(1 行受影响)
*/
--小F-- 2010-04-01
  • 打赏
  • 举报
回复
GUID
htl258_Tony 2010-04-01
  • 打赏
  • 举报
回复
NEWID()

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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