--或者建立唯一約束
ALTER TABLE TB
ADD CONSTRAINT UN UNIQUE (ID)
ALTER TABLE TB
ADD CONSTRAINT UN UNIQUE (ID)
解决方案 »
- 字符连接
- 请教,sql server 2005用sa登陆不了
- sqlserver库表中的数据导出导入--非任务:数据导出方法
- 机器A和机器b都装了win2003 server 和sql server 2000 ,都是新装,A可以访问B的数据库 但是b却不能访问a 的数据库
- sqlserver 的 auto close 设置 做什么用的?
- 小女子 初识sql server2005 关于2005对xml存储问题 大家帮帮忙 给解答一下
- 在触发器里回滚触发器里的SQL,且不影响原有的操作
- 附加数据库 问题
- 怎样修改一个表的owner
- AutoCad的dwg和dwf格式的文件怎么存储?急!!
- 超级复杂的取不重复记录解决立即结贴。夜猫子可以锻炼锻炼脑子
- 求助,数据库严重损坏了如何恢复?
--取得随机数的视图
CREATE VIEW v_RAND
AS
SELECT re=STUFF(RAND(),1,2,'')
GO--生成随机编号的函数
CREATE FUNCTION f_RANDBH(@BHLen int)
RETURNS varchar(50)
AS
BEGIN
DECLARE @r varchar(50)
IF NOT(ISNULL(@BHLen,0) BETWEEN 1 AND 50)
SET @BHLen=10lb_bh: --生成随机编号的处理
SELECT @r=re FROM v_RAND
WHILE LEN(@r)<@BHLen
SELECT @r=@r+re FROM v_RAND
SET @r=LEFT(@r,@BHLen) --检查编号在基础数据表中是否存在
IF EXISTS(SELECT * FROM tb WITH(XLOCK,PAGLOCK) WHERE BH=@r)
GOTO lb_bh RETURN(@r)
END
GO--创建引用生成随机编号的函数
CREATE TABLE tb(
BH char(10) PRIMARY KEY DEFAULT dbo.f_RANDBH(10),
col int)--插放数据
BEGIN TRAN
INSERT tb(col) VALUES(1)
INSERT tb(col) VALUES(2)
INSERT tb(col) VALUES(3)
COMMIT TRAN
SELECT * FROM tb
GO
/*--结果
BH col
------------------------------ -----------
6128177354 1
7378536177 3
8387186129 2
--*/
你建立一个唯一约束吧
ALTER TABLE TB
ADD CONSTRAINT UN UNIQUE (ID)
select max(id) + 1 as id from tb得到的ID即为你需要增加的ID
CREATE TABLE Globally_Unique_Data
(guid uniqueidentifier CONSTRAINT Guid_Default DEFAULT NEWID(),
Employee_Name varchar(60)
CONSTRAINT Guid_PK PRIMARY KEY (Guid) );insert Globally_Unique_Data(Employee_Name)
select 'Employee1'select * from Globally_Unique_Data
guid Employee_Name
------------------------------------ ----------------
AB9FC6B7-615B-4F48-A3BE-788E3CCCF6A7 Employee1
自增列不适合多数据库同步交互数据,很有可能主键冲突,Guid可以比较方便实现数据同步,
但是自增数据容易记忆,而Guid不适合记忆。性能上两者基本差不多。可以参照:http://www.cnblogs.com/houleixx/archive/2008/12/13/id_and_guid.html