2013-06-28 37 views
2

我們如何能夠指示在SQL Server數據庫類型intintegernumber一個最大尺寸?與Max在SQL Server數據庫大小INT型

例如,使用varchar我們可以指定最大尺寸:varchar(40)
數字相當於什麼?

+0

一種解決方案可能是創建一個觸發器,如下所示:http://stackoverflow.com/questions/12868213/is-that-somehow-possible-to-set-a-maximum-value-for-a-column-at-sql-server- 2008 – Robin

+0

檢查約束限制了可接受的值範圍,但是對存儲量的唯一影響是ed是您選擇的內置類型中的哪一個 - 因此,例如,無法獲得僅使用6個字節存儲的整數類型。 –

+0

如果不是一個整數,有沒有辦法指定一個數字值的這個最大尺寸? – manu

回答

4

你定義一個CHECK約束:

CREATE TABLE dbo.YourTable 
(
    SomeIntColumn INT 
     CONSTRAINT CHK_YourTable_SomeIntColumn 
     CHECK (SomeIntColumn >= 0 AND SomeIntColumn <= 9999), 
    ....... 
) 

您可以定義可能值的範圍您的數字列的方式。在我的示例中,這個約束條件限制爲CHECK,您可以將INT列限制爲最多4位數。

更新

對於INT風格的數據類型,你不能直接定義了一些在SQL Server的數字 - 有沒有INT(4)或類似的東西。您需要使用我所示的CHECK約束。

類型decimal(和numeric)都支持精度和標度:(小數點後的位數)

decimal(p, s) 

其中p是精度(位數總數)和s是規模。

所以一個decimal(10,4)讓你在總位,這的是小數點後,這樣你就可以有價值觀像

 0.0000 
123456.1234 

+0

是的,謝謝,但我如何在後來的代碼中將此最大數字9999與模式表的ColumnSize引用?因爲我必須在我的代碼中使用最大尺寸進行驗證 – manu

+0

@manu:您**不能**爲「INT」列設置「最大尺寸」 - 它總是** 4字節**。 –

+0

那麼如果不是一個int,我可以爲其他數值類型設置最大大小嗎? (數字) – manu

1

它們已經由您使用的類型定義, 用於bigint,它將是8個字節。見reference

+0

是的,但我的意思是當我想要一個包含不超過4個數字的int,例如數據庫Key1中的一個屬性應該是數字,其最大數字大小是4當我輸入11158時它將不會接受它 – manu

+0

哦,請檢查marc_s的回答 –

相關問題