我們目前定義的常量列表(主要是這些對應於枚舉我們在業務層中定義),在存儲過程的頂部像這樣:在SQL Server中處理'Enumerations'有哪些不同的方法?
DECLARE @COLOR_RED INT = 1
DECLARE @COLOR_GREEN INT = 2
DECLARE @COLOR_BLUE INT = 3
但這些常常會重複很多存儲過程等等有很多重複。
如果過程只需要一個或兩個常量,我使用的另一種技術是將它們作爲參數傳遞給存儲過程。 (對於常量值,使用大寫的相同慣例)。這樣我確信業務層和數據層中的值是一致的。這種方法對於很多值不是很好。
我的其他選擇是什麼?
我正在使用SQL Server 2008和C#,如果它有任何區別。
更新因爲我使用.Net有什麼方式可以幫助用戶定義(CLR)類型?
枚舉上的外鍵很好,但在存儲過程中如何使用這些值? – tpower 2009-07-29 08:58:12
@tpower:不完全確定我理解你的問題,但我通常會將枚舉字符串值傳遞給存儲過程,並立即使用我提到的函數將它們轉換爲外鍵。因此,該應用程序只處理枚舉值,DB代碼只處理外鍵值。 – Adamski 2009-07-29 10:02:26