@RishatIksanov

Как ограничить добавление строки в таблицу в БД MS SQL по атрибуту?

Есть табличка учёта выданных книг в библиотеке - столбцы id_студента и id_книги. Необходимо реализовать ограничение "студент не должен иметь на руках больше семи книг", как это сделать? Ничего толкового не нагуглил, сам думаю, что при добавлении строки должен быть запрос на количество выданных книг и сравнение с числом 7, но как это реализовать не знаю.
  • Вопрос задан
  • 169 просмотров
Пригласить эксперта
Ответы на вопрос 2
tsklab
@tsklab Куратор тега SQL Server
Здесь отвечаю на вопросы.
Как ограничить добавление строки в таблицу в БД MS SQL?

Из справки:
CREATE TABLE CheckTbl (col1 int, col2 int);
GO
CREATE FUNCTION CheckFnctn()
RETURNS int
AS 
BEGIN
   DECLARE @retval int
   SELECT @retval = COUNT(*) FROM CheckTbl
   RETURN @retval
END;
GO
ALTER TABLE CheckTbl
ADD CONSTRAINT chkRowCount CHECK (dbo.CheckFnctn() >= 1 );
GO

Понятно, что в функцию проверки нужно передавать id_студента и использовать его в запросе.
Ответ написан
Комментировать
ThunderCat
@ThunderCat
{PHP, MySql, HTML, JS, CSS} developer
if работает в sql запросах, если есть количество выданных книг - count и if в помощь. Решение не даю ибо не интересно будет.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы