2013-02-27 175 views
3

我想添加一個auto_increment主鍵與ZEROFILL與最大大小爲六。SQL Server Management Studio ZEROFILL

所以它輸出:

000001 
000002 etc... 

但是我真的在努力實現這一目標並不能找到答案。如何在SQL Server Management Studio中設置此列類型?

感謝

+3

爲什麼你想這樣做嗎?是否用於顯示?如果是這樣,最好做的是這個而不是db。不知道你可以在MSSQL中做到這一點。 – sgeddes 2013-02-27 13:38:53

+0

你提到過SSMS,所以你使用的是MS SQL Server,這個版本是什麼?添加所需的標籤 – Yaroslav 2013-02-27 13:39:09

+0

對不起,字段類型是一個int不是一個Varchar如第一次提到。我已經添加了標籤。 – Austin 2013-02-27 13:42:36

回答

6

你不能在SQL Server中的整型字段做到這一點(我也不會用一個varchar推薦它)。

讓SQL Server存儲領域作爲標識,然後(假設這是用於顯示)當您選擇它喜歡這樣,格式化數據:

SELECT RIGHT('000000' + CONVERT(VARCHAR(6),ID), 6) FROM Table 
+0

該字段不是用於顯示其與其他軟件的接口。 – Austin 2013-02-27 13:48:52

+1

@奧斯汀 - 或許使用身份領域,然後用上面的方法創建一個視圖。取決於你的需求。這只是實現前導零的一種方式。 – sgeddes 2013-02-27 13:52:45

1

什麼你想達到不可能。顯示格式是在表示層而不是在數據庫中完成的。您需要從值的表示中分離出值。兩個值1000001是相同的。

如果你想返回格式的,那麼你將不得不返回值爲一個字符串。只需將其轉換爲一個字符串,在開頭添加一些零,然後保留最左邊的字符。

0

通過創建一個功能

CREATE FUNCTION MyZeroFill (
@N BIGINT, 
@D SMALLINT 
) RETURNS VARCHAR(50) AS 
BEGIN 
RETURN RIGHT('0000000000000000000000000000000000000000000000'+CAST 
(@N AS VARCHAR),@D) 
END