SQL Server数据/输入验证

时间:2008-12-18 12:43:19

标签: sql-server validation

我正在考虑在MS SQL Server 2005的某些插入和更新语句上添加验证。 我希望能够在写入表之前检查插入的值 - 在这种特殊情况下,它是一个整数字段,其中数据必须符合规则。 所以一个简单的模式可能是:

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

而magicvalue就是我要验证的那个。但是,当索引和外键约束不适合时,这是“最佳实践”的一般问题。我想我不确定触发器或约束是否可行,或者是否有其他方法。

一个例子是可选的:)

2 个答案:

答案 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可以处理更复杂的验证,而约束则不能。