读书人

SQL 3表的联合存储存入前须判断表里

发布时间: 2013-07-01 12:33:04 作者: rapoo

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进行客户端更新按钮的状态,进行异步判断

读书人网 >SQL Server

热点推荐