怎么把一条数据插入到多张表中 谢谢 急!!!!!!!!!!!!!!!

kevinhu520 2008-01-10 11:35:31
怎么把一条数据插入到多张表中 谢谢 急!!!!!!!!!!!!!!!
怎么把一条数据插入到多张表中 谢谢 急!!!!!!!!!!!!!!!
怎么把一条数据插入到多张表中 谢谢 急!!!!!!!!!!!!!!!
怎么把一条数据插入到多张表中 谢谢 急!!!!!!!!!!!!!!!
怎么把一条数据插入到多张表中 谢谢 急!!!!!!!!!!!!!!!
怎么把一条数据插入到多张表中 谢谢 急!!!!!!!!!!!!!!!
怎么把一条数据插入到多张表中 谢谢 急!!!!!!!!!!!!!!!
怎么把一条数据插入到多张表中 谢谢 急!!!!!!!!!!!!!!!
...全文
532 27 打赏 收藏 转发到动态 举报
写回复
用AI写文章
27 条回复
切换为时间正序
请发表友善的回复…
发表回复
lyx332704948 2011-03-04
  • 打赏
  • 举报
回复
我是感觉用事务会比较好!
protect void run ()
{
string constr=@"Server=(Local);Database=Northwind;UID=sa;PWD=";

System.Data.SqlClient.SqlConnection sqlConnection = null;
System.Data.SqlClient.SqlTransaction sqlTransaction = null;
try
{
sqlConnection = new System.Data.SqlClient.SqlConnection(constr);
sqlConnection.Open;
sqlTransaction = sqlConnection.BeginTransactio (System.Data.IsolationLevel.ReadCommitted,"SQLTransaction");

System.Data.SqlClient.SqlCommand sqlCommand = sqlConnection.CreateCommand();
sqlCommand.Connection = sqlConnection;
sqlCommand.Transaction = sqlTransaction;

//开始执行事务,该事务由命令1 2 3组成.
// 执行数据库命令1
sqlCommand.CommandText = "Insert into Region (RegionID, RegionDescription) VALUES (200, \'Description\')";
sqlCommand.ExecuteNonQuery();
// 执行数据库命令2
sqlCommand.CommandText = "Insert into Region (RegionID, RegionDescription) VALUES (201, \'Description\')";
sqlCommand.ExecuteNonQuery();
// 执行数据库命令3!!!与命令1相同,会出错
sqlCommand.CommandText = "Insert into Region (RegionID, RegionDescription) VALUES (200, \'Description\')";
sqlCommand.ExecuteNonQuery();
// 提交事务
sqlTransaction.Commit();
Console.WriteLine("两条数据库命令已经执行完成.");
}
catch(Exception e)
{
try
{
if(sqlTransaction != null)
{
// 回滚事务
sqlTransaction.Rollback("SQLTransaction");
}
}
catch (System.Data.SqlClient.SqlException ex)
{
// 回滚事务失败
if (sqlTransaction.Connection != null)
{
Console.WriteLine("执行回滚事务时出现 " + ex.GetType() + " 违例!" + ex.Message);
}
}

Console.WriteLine("在执行数据库命令时出现 " + e.GetType() + " 违例!" + e.Message);
Console.WriteLine("两条数据库命令均未完成.");
}
finally
{
//关闭Connection
if(sqlConnection != null)
{
sqlConnection.Close();
}
}

}
tallen2005 2008-02-18
  • 打赏
  • 举报
回复
触发器~
sl98_1 2008-02-01
  • 打赏
  • 举报
回复
触发器
zzuyongp 2008-01-27
  • 打赏
  • 举报
回复
建议使用事务
人鱼传说 2008-01-26
  • 打赏
  • 举报
回复
想怎麽插就怎麽插
chengqscjh 2008-01-25
  • 打赏
  • 举报
回复
学习
rockyvan 2008-01-25
  • 打赏
  • 举报
回复
學習
crazywives 2008-01-25
  • 打赏
  • 举报
回复
对了 那位大哥给说下几种做法的区别和不同吗?
crazywives 2008-01-25
  • 打赏
  • 举报
回复
大哥们 太强了 学习~~~
wzy_love_sly 2008-01-24
  • 打赏
  • 举报
回复
如果是查询的结果,触发器键在哪?
-狙击手- 2008-01-24
  • 打赏
  • 举报
回复
关注
honghuali 2008-01-24
  • 打赏
  • 举报
回复
强烈建议用事务来做
保证数据的完整性
云中客 2008-01-24
  • 打赏
  • 举报
回复
用多条语句实现对一条数据插入到多张表中的操作

建议将语句写入存储过程中,并使用事务来保证数据的完整性
JiangHongTao 2008-01-24
  • 打赏
  • 举报
回复
正解
用触发器。
dawugui 2008-01-23
  • 打赏
  • 举报
回复
写到存储过程或处罚器中.

自己截断相关数据然后往相关表中插入.
yang_dgut 2008-01-23
  • 打赏
  • 举报
回复
一個表一個表的插就行啦!
w2jc 2008-01-10
  • 打赏
  • 举报
回复
在一个事务里面向每个表插入记录


begin try
begin transaction
insert into TableA ...
insert into TableB ...
insert into TableC ...
commit transaction
end try
begin catch
-- need to handle error
rollback transaction
end catch
想飞的狼 2008-01-10
  • 打赏
  • 举报
回复
表触发器里做
changjiangzhibin 2008-01-10
  • 打赏
  • 举报
回复
好快
zlp321002 2008-01-10
  • 打赏
  • 举报
回复
游标方法:
declare @name varchar(20)
Declare Cur Cursor For
select Name from 表
declare @SQL Varchar(2000)
Open Cur
Fetch Cur Into @name
While @@FETCH_STATUS=0
BEGIN
--构造你的SQL(多个插入语句,控制好并发)
Exec(@sql)
Fetch Cur Into @name
End
Close Cur
Deallocate cur

(程序用循环插入):
insert into 表1(...) select 'a'...
go
insert into 表2(...) select 'a'...
go

加载更多回复(7)

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧