想问一下SQL能实现这样的功能吗?应该怎么实现?
有两个表,
a 结构如下主表
id 主键
TName Null
b 结构如下明细表
Tid Not Null--存放a.id
MX Null -- 明细
我想要实现这样的功能:
当向a表插入一条记录时,同时也向b表插入一条记录,
且b.Tid = a.id
请部如何在向a表插入数据的同时得到id 值,同时会给b表的Tid
------解决方案--------------------inner join
------解决方案--------------------用存储过程呗
如果这个id是个自增字段
定义一个变量=@@identity
取到这个变量再往另一个表里插
------解决方案--------------------用触发器也能实现
------解决方案--------------------触发器实现较好,你用SQL语句也能实现了,使用事务使两个表的操作在一个事务内。
using (SqlConnection conn = new SqlConnection(SqlHelper.ConnectionStringLocalTransaction))
{
strSql.Append(SQL insert表a);
conn.Open();
SqlTransaction trans = conn.BeginTransaction();
cmd.Transaction = trans;
cmd.Connection = conn;
cmd.CommandType = CommandType.Text;
try
{
cmd.CommandText = strSql.ToString();
cmd.ExecuteNonQuery();
cmd.CommandText = sql取刚才的ID;
cmd.ExecuteNonQuery();
cmd.CommandText = SQL insert表B;
cmd.ExecuteNonQuery();
trans.Commit();
}
catch (Exception e)
{
trans.Rollback();
}
}
------解决方案--------------------恩sql和.net中的事务或者.sql的触发器
------解决方案--------------------触发器
CREATE TRIGGER T_insert_a ON a
FOR INSERT
AS
INSERT INTO b(Tid) SELECT id FROM [Inserted]
GO