回答
您可以使用IDENTITY
這將爲您做到這一點。
CREATE TABLE [dbo].[MyTable](
[MyTableID] [int] IDENTITY(1,1) NOT NULL,
-- Other columns
)
當您插入第一個記錄,你會得到一個Id
1.
請注意,當列爲NULL時,這不會工作。即使在增加之後,NULL列仍然爲NULL。爲了解決這個問題,請使用['ISNULL'語句](http://msdn.microsoft.com/en-us/library/ms184325.aspx):'UPDATE myTable SET ID = ISNULL(ID,0)+ 1'(取自[This SO answer](http://stackoverflow.com/a/9136574/107625)) – 2014-06-09 08:09:48
'SET [Lic] = [Lic] + @ dif'。注意*** @ dif ***變量可以是_positive,0或negative_ – Kiquenet 2016-08-19 09:17:01
如果你想有一個自動生成的每一行的唯一編號,這是IDENTITY根據尼爾的答案。
如果每次更新表的時間要增加值(即它們不是鍵):
Update MyTable
Set IDColumn = IDColumn + 1
Where <whatever>
你可以嘗試以下方法:
DECLARE @i INT
SET @i = @@ROWCOUNT + 1
INSERT INTO YourTable
(Identity Column)
VALUES
(@i + 1)
在Oracle代碼有點棘手。
您將不得不用序列對象創建一個自動遞增字段(該對象生成一個數字序列)。
使用以下CREATE SEQUENCE語法:
CREATE SEQUENCE seq_person
MINVALUE 1
START WITH 1
INCREMENT BY 1
CACHE 10
以上代碼創建稱爲seq_person序列對象,即以1開始,將被遞增1。它也將緩存多達10個值的性能。緩存選項指定將多少個序列值存儲在內存中以便更快地訪問。
要插入一個新的記錄在「Persons」表中,我們將不得不使用NEXTVAL函數(此函數從seq_person序列中的下一個值):
INSERT INTO Persons (ID,FirstName,LastName)
VALUES (seq_person.nextval,'Lars','Monsen')
上面的SQL語句會插入一個進入「人員」表的新記錄。 「ID」列將被分配seq_person序列中的下一個數字。 「FirstName」列將被設置爲「Lars」,並且「LastName」列將被設置爲「Monsen」。
試試這個:
Update Emp set testCount= ISNULL(testCount, 0) + 1 where testId=1
有關任何你想要的樣本?將1列的列值增加1?所有的行?哪個是你的表格(DDL)?數據樣本(DML)? – Kiquenet 2016-08-19 09:18:26