我正在考虑在MS SQL Server 2005的某些插入和更新语句上添加验证。 我希望能够在写入表之前检查插入的值 - 在这种特殊情况下,它是一个整数字段,其中数据必须符合规则。 所以一个简单的模式可能是:
([id] [int] identity(1,1), [name] [nvarchar], [magicvalue] [int])
而magicvalue就是我要验证的那个。但是,当索引和外键约束不适合时,这是“最佳实践”的一般问题。我想我不确定触发器或约束是否可行,或者是否有其他方法。
一个例子是可选的:)
答案 0 :(得分:1)
使用此
的约束e.g
CREATE TABLE [dbo].[SalesHistory](
[SaleID] [int] NOT NULL,
[Product] [char](150) NULL,
[SaleDate] [datetime] NULL,
[SalePrice] [money] NULL CHECK (SalePrice > 4)
)
答案 1 :(得分:0)
这取决于验证的复杂程度。如果您可以在通常比触发器更有效的约束中执行此操作。但是,triigers可以处理更复杂的验证,而约束则不能。