Проверка данных / ввода в SQL Server - PullRequest
0 голосов
/ 18 декабря 2008

Я рассматриваю возможность добавления проверки для некоторых операторов вставки и обновления для MS SQL Server 2005. Я хочу иметь возможность проверять значения, вставленные до того, как они будут записаны в таблицу - в данном конкретном случае это целочисленное поле, в котором данные должны соответствовать правилу. Таким образом, простая схема может быть:

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

И магическое значение - это то, что я собираюсь проверить. Тем не менее, это общий вопрос для «наилучшей практики», когда индексы и ограничения внешнего ключа не подходят. Я предполагаю, что не уверен, являются ли триггеры или ограничения подходом, или есть ли другие пути.

Пример необязательный:)

Ответы [ 2 ]

1 голос
/ 18 декабря 2008

Используйте ограничения для этого

* 1003 например *

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

)
0 голосов
/ 18 декабря 2008

Зависит от того, насколько сложна проверка. Если вы можете сделать это в ограничении, которое обычно более эффективно, чем триггер. Тем не менее, тригеры могут обрабатывать более сложные проверки, которые не могут выполнять ограничения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...