在sql server 2005中,我有一个这样的表
empno name project -------- -------- ----------- 1 ram pro-1 2 sheik pro-2
现在,当我尝试使用empno和表中已存在的项目值插入记录时,我想提出错误。
答案 0 :(得分:3)
如果您想引发错误,可以在(empno, project)
上设置UNIQUE INDEX或UNIQUE CONSTRAINT当您尝试INSERT
与{{1}冲突的值时将抛出异常。
或者,如果记录不存在,您可以插入;如果记录已经在表中,则可以更新INDEX/CONSTRAINT
:
name
答案 1 :(得分:2)
如果存在则RAISERROR
除非相应插入,否则代码块如下:
IF EXISTS (SELECT 1 FROM targetTable AS t
WHERE t.empNo = @yourEmpNo
AND t.project = @yourProject)
BEGIN
RAISERROR('Raising errors',18,1)
END
ELSE
BEGIN
INSERT INTO yourTable (empno, name, project)
SELECT @empno, @name, @project
END