首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

SQL 3表的联合存储,存入前须判断表里是否已经有该记录

2013-07-01 
SQL 三表的联合存储,存入前须判断表里是否已经有该记录,具体的表是这样的:表一 USER USERIDLOGONID USERNA

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

[解决办法]
引用:
Quote: 引用:

1:插入前,首先判断数据库中是否存在此记录
2:或者AFTER 触发器,判断是否存在然后删除一条

 我想请教个问题, 比如当前按钮的状态是不可用的,如何实现当在文本框输入值,或改变值的时候,按钮状态变为可用? 我用文本框文本改变的事件
    protected void txtAD_TextChanged(object sender, EventArgs e)
    {
        this.btnOk.Enabled = !string.IsNullOrWhiteSpace(this.txtAD.Text);
    }
不过这样实现不了效果

你使用js进行客户端更新按钮的状态,进行异步判断

热点排行