2013-06-27 57 views
0

我想在我的SQL Server 2008數據庫中存儲交換機端口的值。但哪種數據類型最適合使用?我應該使用哪種數據類型來存儲交換機端口號

+0

這些值是什麼樣的?固定數字 - >使用「INT」。小數 - >使用'DECIMAL(p,s)'。其他東西 - >最有可能使用'VARCHAR(n)' –

+0

我認爲端口可以具有從0到65535的值,並且不能包含分數。所以我可以使用int。但如果我想讓端口號只允許0到65535之間的值,那麼我如何指定Int可以存儲的最大位數和數字範圍? –

+0

可能重複的[我的Sql Server 2008 R2中的無符號短數據類型](http://stackoverflow.com/questions/17348848/unsigned-short-data-type-in​​-my-sql-server-2008-r2) – LittleBobbyTables

回答

1

假設你的端口,通過65535爲0的可能值,你可以使用這樣的事情:

CREATE TABLE dbo.YourTable 
(Port INT NOT NULL 
     CONSTRAINT CHK_Port CHECK(Port >=0 AND Port <= 65535) 
) 

有了這個CHECK CONSTRAINT,你要確保你只能得到有效的條目;如果你試圖插入一個負值或65535以外的東西 - 那麼你會得到一個錯誤,並且INSERT不會發生

相關問題