我有6个整数字段(分别称为genre1
... genre6
)。用户从前端的下拉菜单中输入选择。我想要发生的是消息显示他已经为字段1和2或1和3等选择了相同的值。
看起来像这样。
genre1 int,
genre2 int,
genre3 int,
genre4 int,
genre5 int,
genre6 int,
if genre1 = genre2
or genre1 = genre3
or genre1 = genre4
or genre1 = genre5
or genre1 = genre6
or genre2 = genre3
or genre2 = genre4
or genre2 = genre5
etc ...
我不需要说明他输入错误的字段组合只是他已经这样做了,他应该在继续之前查看数据。
这必须发生在表格的触发器(插入和更新)中。还有其他逻辑在触发器内进行测试和评估,但最后我添加了以下逻辑以启动它似乎无法工作。
declare @genre1 int
set @genre1 = (select genre1 from lt_wmi_men_org_cs where id_key = @id_key)
-- select * from lt_wmi_men_org_cs
BEGIN TRY
IF (@genre1 = 6) -- This is used to test a particular value.
BEGIN
Select @genre1
END
END TRY
BEGIN CATCH
-- SELECT ERROR_MESSAGE() + @genre1 AS ErrorMessage;
DECLARE @ErrorNumber INT = ERROR_NUMBER();
DECLARE @ErrorLine INT = ERROR_LINE();
DECLARE @ErrorMessage NVARCHAR(4000) = ERROR_MESSAGE();
DECLARE @ErrorSeverity INT = ERROR_SEVERITY();
DECLARE @ErrorState INT = ERROR_STATE();
PRINT ERROR_MESSAGE() + @genre1;
PRINT 'Actual error number: ' + CAST(@ErrorNumber AS VARCHAR(10));
PRINT 'Actual line number: ' + CAST(@ErrorLine AS VARCHAR(10));
END CATCH;
我也尝试了一个更复杂的if语句,但似乎没有一个工作。
BEGIN TRY
IF (@genre1 = @genre2 OR @genre1 = @genre3 OR @genre1 = @genre4 OR @genre1 = @genre5 OR @genre1 = @genre6 )
BEGIN
Select @genre1
END
END TRY
请指教。
谢谢