我需要自動在decimal
增量十進制列在SQL Server 2014SQL服務器:自動遞增的十進制列
回答
我的實際要求是爲我的存儲過程的每個調用一個版本號。我已經實現了這個如下。
難道創建和表的更新用外部
create table version(no decimal(2,2)) insert into version(1.0)
下面是我的存儲過程
Update version set no=(select max(no) from version)+1
select no.version,t.* from table t left join version
宣言,但你只選擇整數格式得到。
CREATE TABLE #Record(id decimal(18,0) identity primary key , name VARCHAR(100))
INSERT INTO #Record(name)SELECT 'name1' UNION ALL SELECT 'name2' SELECT * FROM #Record
你應該告訴我們你想要達到的目標,但一種方式來模擬自動遞增的十進制列是將其定義爲計算和連接到自動遞增正常(整數)列。例如: -
定義:
create table AutoincrementDecimalTest
(
Id INT NOT NULL IDENTITY(1, 1),
SomeText NVARCHAR(200) NOT NULL,
-- you may declare it as persisted, if the extra space is not problem
AutoincrementDec AS CAST(Id * 0.2 AS NUMERIC(18, 2))
)
當然,有一些限制你的表情,就指出here。
測試:
insert into AutoincrementDecimalTest (SomeText) VALUES ('test1'), ('test2')
GO
select * from AutoincrementDecimalTest
GO
謝謝。我的實際需求是爲我的邏輯的每次迭代生成一個版本號。我確實如下所示。 在我的邏輯我已經將其設置爲@瓦爾+ 1的環形發起一個小數變量用1.0 '聲明@var十進制(5,2) 集@ VAR = 1.0' ,然後用。 ' 設置@ var = @ var + 1 print @var' –
您的解決方案可能有效,但您應該考慮基於集合的術語 - 一次插入多個自動生成的插入可能會比while循環中的單個插入要快得多。 – Alexei
- 1. 我可以將SQL查詢傳遞給以十六進制或十進制編碼的sql服務器嗎?
- 2. 控制自動遞增列?
- 3. 如何自動遞增非主鍵? - SQL服務器
- 4. 如何遞增十六進制數
- 5. 自動遞增的SQL Server
- 6. 自動遞增的SQL值
- 7. 自動遞增列
- 8. SQL服務器:爲什麼不是十進制
- 9. SQL服務器鑄造十進制數據
- 10. 自動增加sql服務器中的ID
- 11. MS SQL服務器:主鍵,自動遞增,並插入到失敗
- 12. 來自sql select的十六進制值
- 13. SQL服務器增加值
- 14. 自動遞增兩列
- 15. 在Excel中自動增加十進制值
- 16. 強制默認值增加表列中時 - SQL服務器
- 17. 十進制值/ SQL
- 18. 如何將十進制數傳遞給其他Web服務
- 19. 存儲過程中的SQL動態自動遞增列
- 20. 自動遞增的ID在SQL Server
- 21. 自動遞增
- 22. 無法通過c#代碼插入到sql服務器表的十進制
- 23. SQL或PHP中的自動十進制數字格式?
- 24. 遞歸二進制到十進制
- 25. 動態列 - SQL服務器 - 月爲列
- 26. 自動遞增ASP的控制ID
- 27. 在服務器端的漸進增強?
- 28. Liferay的服務構建表自動遞增在每個部署
- 29. 同步用戶測試web服務的自動遞增功能
- 30. 遞歸SUM Sql服務器
第一關的小提...爲什麼?第二,DP有多少?請提供樣本數據。 – JohnHC
試過,得到這個錯誤信息:'標識列'D'必須是數據類型int,bigint,smallint,tinyint或者小數或者數字,刻度爲0,並且約束爲不可空。「# –
@JohnHC我必須給出一個自動生成的版本號。例如:1.0,2.0,。 。 。 –