SQL 三表的联合存储,存入前须判断表里是否已经有该记录,
具体的表是这样的:
表一 USER
USERID LOGONID USERNAME
表二 GROUP
GROUPID GROUPNAME
表三 GROUPUSER
GROUPUSERID GROUPID USERID GROUPUSERNAME
在文本框 txtName中输入LOGONID(USER表中已有的记录)判断LOGONID是否存在,存在即可选择下拉框继续选择部门然后将记录插入到表GROUPUSER中,并且不能重复将同一记录插入表GROUPUSER中,
string strSqlInsert = @"insert into [GROUPUSER](USERID,GROUPID) select [USER].USERID , [GROUP].GROUPID from [USER],[GROUP]
where GROUPNAME='" + ddlGroup.SelectedValue + "' and USERNAME='" + lblName.Text + "'";这是我实现将数据插入GROUPUSER中,但是要怎么做才能防止重复插入同一记录呢?? 不能使用唯一性约束,数据库的表不允许改动。 存储 SQL 数据库 行业数据 String
[解决办法]
可以在GROUPUSER建立一个触发器来防止重复插入同一记录。
[解决办法]
CREATE TRIGGER t_GROUPUSER ON dbo.GROUPUSER
FOR INSERT
AS
if (SELECT COUNT(*)
FROM GROUPUSER,inserted
WHERE (GROUPUSER.GROUPUSERID=inserted.GROUPUSERID)
AND (GROUPUSER.GROUPID=inserted.GROUPID)
AND (GROUPUSER.USERID=inserted.USERID)
AND (GROUPUSER.GROUPUSERNAME = inserted.GROUPUSERNAME) )>1
begin
print '记录已存在!'
rollback transaction
end
GO