Мне нужно иметь Выберите до 3 типов компаний в SQL и используйте Проверьте ограничение . Как это сделать, или я также принимаю другие предложения. Для следующей таблицы:
CREATE TABLE Dbo.[CompanyType](
[TypeID] [bigint] IDENTITY(1,1) NOT NULL,
[Manufacturer] [bit] NULL,
[Trading] [bit] NULL,
[BuyingOffice] [bit] NULL,
[Agent] [bit] NULL,
[Wholesaler] [bit] NULL,
[Commission] [bit] NULL,
[Association] [bit] NOT NULL,
[BusinessService] [bit] NOT NULL,
[Other] [bit] NOT NULL,
[Photo] [image] NULL,
[CreateDate] datetime
CONSTRAINT [PK_CompanyType] PRIMARY KEY CLUSTERED
(
[TypeID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
ALTER TABLE dbo.[CompanyType] ADD CONSTRAINT [DF_Company_PersianTax] DEFAULT ((9)) FOR [Taxpercent]
GO
ALTER TABLE dbo.[CompanyType] ADD CONSTRAINT [DF_Company_CreateDate] DEFAULT (getdate()) FOR [CreateDate]
GO
- с использованием проверочного ограничения.
Как использовать проверить ограничение для этой модели ??
Я пробовал:
Тем временем я использую SP для вставки. Не лучше ли проверить там три или более достоверных данных? На момент ввода данных в качестве параметра проверьте
--parameter validation
if(@Manufacturer+@Trading+@BuyingOffice+@Agent+@Wholesaler+@Commission+@Association+@BusinessService+@Other)<= 3
Begin
Return
End
else
insert statement (...)
Использование триггера, как следующий запрос! чек вставлен, сумма столбца <= 3 отката </li>
CREATE TRIGGER usp_checksum3
ON dbo.companytype
AFTER insert
AS
BEGIN
SET NOCOUNT ON;
if (Select [Manufacturer]+[Trading]+[BuyingOffice]+[Agent]+[Wholesaler]+[Commission]+[Association]+[BusinessService]+[Other]
From inserted) <= 3
Return
END
Спасибо за советы