我正在使用SQL Server 2008,並且我正在使用的數據庫表的主鍵不是IDENTITY
列(不知道爲什麼)。我需要改變這一點。如何將auto_increment添加到SQL Server 2008中的列中
我在設計視圖中的SQL Server Management Studio中,在列屬性下,出於某種原因,我無法將標識規範更改爲Yes
。
有什麼,我失蹤..我是新來的SQL Server - 任何想法,我失蹤了?
下面是創建表
CREATE TABLE [dbo].[AR_Transactions](
[Trans_ID] [bigint] NOT NULL,
[DateTime] [datetime] NOT NULL,
[Cashier_ID] [nvarchar](50) NULL,
[CustNum] [nvarchar](12) NOT NULL,
[Trans_Type] [nvarchar](2) NOT NULL,
[Prev_Cust_Balance] [money] NULL,
[Prev_Inv_Balance] [money] NULL,
[Trans_Amount] [money] NOT NULL,
[Payment_Method] [nvarchar](4) NULL,
[Payment_Info] [nvarchar](20) NULL,
[Description] [nvarchar](38) NULL,
[Invoice_Number] [bigint] NOT NULL,
[Store_ID] [nvarchar](10) NOT NULL,
[Dirty] [bit] NOT NULL,
[Station_ID] [nvarchar](5) NULL,
[Payment_Type] [smallint] NULL,
CONSTRAINT [pkAR_Transactions]
PRIMARY KEY CLUSTERED([Store_ID] ASC, [Trans_ID] ASC)
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF,
ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
ALTER TABLE [dbo].[AR_Transactions]
ADD CONSTRAINT [DF_AR_Transactions_Trans_ID_AR_Transactions]
DEFAULT ((0)) FOR [Trans_ID]
ALTER TABLE [dbo].[AR_Transactions]
ADD CONSTRAINT [DF_AR_Transactions_Invoice_Number_AR_Transactions]
DEFAULT ((0)) FOR [Invoice_Number]
這裏是我需要運行......它的一個完整的黑客,試圖自動遞增我自己插入
BEGIN TRANSACTION
INSERT INTO
[cresql].[dbo].[AR_Transactions](Trans_ID, DateTime , Dirty, Store_ID, Trans_Type,
Cashier_ID, CustNum, Trans_Amount, Prev_Cust_Balance)
SELECT
(SELECT MAX(Trans_ID) + 1 FROM [cresql].[dbo].[AR_Transactions]),
DATEADD(MINUTE, -30, Getdate()), 1, 1001, 'C', 100199, CustNum,
-Acct_Balance, Acct_Balance
FROM [cresql].[dbo].[Customer]
WHERE Acct_Balance <> 0
UPDATE [cresql].[dbo].[Customer]
SET Acct_Balance = 0
WHERE Acct_Balance <> 0
COMMIT TRANSACTION
你說的意思不能改變它。它會給你一個錯誤?它變灰了嗎? – 2011-05-24 16:44:08
這個問題是身份是灰色到否,我不能改變它 – Trace 2011-05-24 17:03:27
在一個側面說明:我會*不會*調用像'[日期時間]'的列'我也會推薦*而不是*長度小於5的列'varchar'或'nvarchar' - 2字節的開銷只會讓你失望。如果列爲5個字符或更少,則使用'CHAR(x)'或'NCHAR(x)'。我相信你現在正在增加'Trans_ID'的方法在繁忙的環境中不安全,並且遲早會導致重複'Trans_ID'值... – 2011-05-24 19:01:52