2008-12-18 86 views
0

我正在考慮爲MS SQL Server 2005的某些插入和更新語句添加驗證。 我希望能夠在插入到表中之前檢查插入的值 - 在這種情況下,它是數據必須符合規則的整數字段。 因此,一個簡單的模式可以是:SQL Server數據/輸入驗證

([id] [int] identity(1,1), [name] [nvarchar], [magicvalue] [int]) 

而且magicvalue是一個我要去驗證。然而,當索引和外鍵約束不合適時,這是「最佳實踐」的一個普遍問題。我想我不確定觸發器或限制條件是否可行,或者有其他方法。

一個例子是可選:)

回答

0

這取決於驗證的複雜程度。如果你可以在一個比觸發器更高效的約束條件下完成。然而,triigers可以處理更復雜的驗證,而約束不能。

1

e.g使用約束

CREATE TABLE [dbo].[SalesHistory](
     [SaleID] [int] NOT NULL, 
     [Product] [char](150) NULL, 
     [SaleDate] [datetime] NULL, 
     [SalePrice] [money] NULL CHECK (SalePrice > 4) 

) 
+0

這個答案適合我在這裏的目的,但我想知道在哪裏使用預先提交觸發器或規則(http://msdn.microsoft.com/en-us/library/aa258252(SQL。 80)的.aspx)。我知道後者已被棄用,但不是替代品。 – Jan 2008-12-18 14:20:02