Tsql GUID。并将自动id作为SQL数据库中的主键
我的算法是: 支票计数 计数+1是新的主键起点 然后在每次插入操作之前继续递增 但这是什么?SQL Server是否提供了自动生成并递增主键的功能?创建您的表 id int indentity1,1主键, col1 varchar10 将自动为您创建主键。 检查T-SQL中的GUID,现在手头上没有它。创建您的表 id int indentity1,1主键, col1 varchar10 将自动为您创建主键。Tsql GUID。并将自动id作为SQL数据库中的主键,tsql,sql-server-2005,primary-key,Tsql,Sql Server 2005,Primary Key,我的算法是: 支票计数 计数+1是新的主键起点 然后在每次插入操作之前继续递增 但这是什么?SQL Server是否提供了自动生成并递增主键的功能?创建您的表 id int indentity1,1主键, col1 varchar10 将自动为您创建主键。 检查T-SQL中的GUID,现在手头上没有它。创建您的表 id int indentity1,1主键, col1 varchar10 将自动为您创建主键。 检查T-SQL中的GUID,现在手头没有。我不确定您是否也在询问标识-但GUID是
检查T-SQL中的GUID,现在手头没有。我不确定您是否也在询问标识-但GUID是一个唯一标识符,几乎可以保证是唯一的。它可以用于主键,但不建议使用,除非您正在进行脱机工作或计划合并数据库 例如,一个普通的标识主键是
SELECT COUNT(*) FROM table_name;
当与另一个数据库合并时
1 Jason
2 Jake
3 Mike
这将是棘手的。您必须为某些列重新设置关键帧,确保FK处于有序状态,等等。使用GUID,数据如下所示,并且易于合并:
1 Lisa
2 John
3 Sam
请注意,GUID比INT占用的空间要大得多,因此建议使用INT作为主键,除非您确实需要。我不确定您是否也在询问标识,但GUID是一个唯一的标识符,几乎可以保证是唯一的。它可以用于主键,但不建议使用,除非您正在进行脱机工作或计划合并数据库 例如,一个普通的标识主键是
SELECT COUNT(*) FROM table_name;
当与另一个数据库合并时
1 Jason
2 Jake
3 Mike
这将是棘手的。您必须为某些列重新设置关键帧,确保FK处于有序状态,等等。使用GUID,数据如下所示,并且易于合并:
1 Lisa
2 John
3 Sam
请注意,GUID比INT要占用更多的空间,因此建议使用INT作为主键,除非您绝对需要。有3个选项
1FB74D3F-2C84-43A6-9FB6-0EFC7092F4CE Jason
845D5184-6383-473F-A5D6-4DE98DBFBC39 Jake
8F515331-4457-49D0-A9F5-5814EE7F50BA Mike
CE789C89-E01F-4BCE-AC05-CBDF10419E78 Lisa
4D51B568-107C-4B63-9F7F-24592704118F John
7FA4ED64-7356-4013-A78A-C8CCAB329954 Sam
如果使用ID,您可能更喜欢C而不是B的一个原因是为了减少碎片。有3个选项
1FB74D3F-2C84-43A6-9FB6-0EFC7092F4CE Jason
845D5184-6383-473F-A5D6-4DE98DBFBC39 Jake
8F515331-4457-49D0-A9F5-5814EE7F50BA Mike
CE789C89-E01F-4BCE-AC05-CBDF10419E78 Lisa
4D51B568-107C-4B63-9F7F-24592704118F John
7FA4ED64-7356-4013-A78A-C8CCAB329954 Sam
您可能更喜欢C而不是B的一个原因是,如果要使用ID,可以减少碎片。使用count,然后使用count+1作为键的问题是,如果要从中间删除记录,最终会生成一个重复的键。 例如: 现在deletebcount变为3,并插入E。这将尝试使新的主键变为4,它已经存在
Key Data
1 A
2 B
3 C
4 D
或者您可以使用GUID。guid的工作原理是创建一个128位整数,表示为一个32字符的十六进制字符串
CREATE TABLE myTable
(
P_Id int NOT NULL AUTO_INCREMENT,
PRIMARY KEY (P_Id)
)
这导致2^128个可能的值非常大,因此由一台计算机创建类似值的可能性非常小。此外,还有一些算法可以帮助尝试并确保这种情况不会发生。所以GUID也是一个很好的键选择
至于是使用整数还是GUID,通常取决于应用程序、策略等。使用count,然后使用count+1作为键的问题是,如果要从中间删除记录,最终会生成一个重复的键。 例如: 现在deletebcount变为3,并插入E。这将尝试使新的主键变为4,它已经存在
Key Data
1 A
2 B
3 C
4 D
或者您可以使用GUID。guid的工作原理是创建一个128位整数,表示为一个32字符的十六进制字符串
CREATE TABLE myTable
(
P_Id int NOT NULL AUTO_INCREMENT,
PRIMARY KEY (P_Id)
)
这导致2^128个可能的值非常大,因此由一台计算机创建类似值的可能性非常小。此外,还有一些算法可以帮助尝试并确保这种情况不会发生。所以GUID也是一个很好的键选择
至于是使用整数还是GUID,通常取决于应用程序、策略等。能否创建一个名为int的列?无论如何,我相信你指的是id int dentitity1,1主键是的,我指的是id int。现在修好了,谢谢。你能做一个名为int的列吗?不管怎么说,我相信你指的是id int标识1,1主键是的,我指的是id int。现在修好了,谢谢。