我需要有一列作为主键,另一列是自动递增订单号字段.这可能吗?
编辑:我想我只会使用一个复合数作为订单号.不管怎么说,多谢拉.
CREATE TABLE [dbo].[Foo]( [FooId] [int] IDENTITY(1,1) NOT NULL, [BarId] [int] IDENTITY(1,1) NOT NULL )
回报
Msg 2744, Level 16, State 2, Line 1 Multiple identity columns specified for table 'Foo'. Only one identity column per table is allowed.
所以,不,你不能有两个标识列.您当然可以使主键不自动递增(标识).
编辑:msdn:CREATE TABLE(Transact-SQL)和CREATE TABLE(SQL Server 2000):
每个表只能创建一个标识列.
如果使用SQL Server 2012,则可以将序列用于具有默认值的第二列
--Create the Test schema CREATE SCHEMA Test ; GO -- Create a sequence CREATE SEQUENCE Test.SORT_ID_seq START WITH 1 INCREMENT BY 1 ; GO -- Create a table CREATE TABLE Test.Foo (PK_ID int IDENTITY (1,1) PRIMARY KEY, SORT_ID int not null DEFAULT (NEXT VALUE FOR Test.SORT_ID_seq)); GO INSERT INTO Test.Foo VALUES ( DEFAULT ) INSERT INTO Test.Foo VALUES ( DEFAULT ) INSERT INTO Test.Foo VALUES ( DEFAULT ) SELECT * FROM Test.Foo -- Cleanup --DROP TABLE Test.Foo --DROP SEQUENCE Test.SORT_ID_seq --DROP SCHEMA Test
http://technet.microsoft.com/en-us/library/ff878058.aspx
添加一个标识列,然后添加一个计算列,其公式是标识列的名称
现在两者都会同时增加