SQL Server中 用存储过程 怎样 在同一时间向一张表插入多条数据

如 在网上买书 ,买两本同时将两本书的信息插入到数据库

如果必须同时插的话,建议你使用一个临时表。 在存储过程中先将数据整理的临时表中。假设临时表名叫temp,目标表名叫 result。
最后执行 insert into result select * from temp;
就可以讲 temp表中的数据 一次入到 目标表中了。
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-12-04
在存储过程中写两个INSERT 就可以了
create proc up_insert
as
begin
insert into test valuse(1);
insert into test values(2);
end;追问

但是我插入的 是 不同的数据, 参数怎么写啊!!!!

追答

create proc up_insert
@a int,
@b int
as
begin
insert into test valuse(@a);
insert into test values(@b);
end;

追问

你这个 完全是写死 的

追答

参数和存储过程里面的SQL你都可以自己修改的,甚至你连表名可以动态的

本回答被网友采纳
第2个回答  2013-12-04
/// <summary>
/// 执行多条SQL语句,实现数据库事务。
/// </summary>
/// <param name="SQLStringList">SQL语句的哈希表(key为sql语句,value是该语句的SqlParameter[])</param>
public static void ExecuteSqlTran(Hashtable SQLStringList)
{
using (SqlConnection conn = new SqlConnection(connectionString))
{
conn.Open();
using (SqlTransaction trans = conn.BeginTransaction())
{
SqlCommand cmd = new SqlCommand();
try
{
//循环
foreach (DictionaryEntry myDE in SQLStringList)
{
string cmdText=myDE.Key.ToString();
SqlParameter[] cmdParms=(SqlParameter[])myDE.Value;
PrepareCommand(cmd,conn,trans,cmdText, cmdParms);
int val = cmd.ExecuteNonQuery();
cmd.Parameters.Clear();

trans.Commit();
}
}
catch
{
trans.Rollback();
throw;
}
}
}
}

eg:

Hashtable SQLStringList = new Hashtable();
//循环开始
string cmdText = "insert into userinfo (username,userpwd)values(@username,@userpwd) ";
SqlParameter[] cmdParms = new SqlParameter[2];
cmdParms[0] = new SqlParameter( "@username ", "name ");
cmdParms[1] = new SqlParameter( "@userpwd ", "pwd ");
....
SQLStringList.Add(cmdText, cmdParms);
//循环结束
ExecuteSqlTran(SQLStringList);追问

就像 有 两个 插入sql语句 ,一个 插入一条数据,另一个 插入多条数据 该怎么办

SQL Server中 用存储过程 怎样 在同一时间向一张表插入多条数据
如果必须同时插的话,建议你使用一个临时表。 在存储过程中先将数据整理的临时表中。假设临时表名叫temp,目标表名叫 result。最后执行 insert into result select * from temp;就可以讲 temp表中的数据 一次入到 目标表中了。

如何在SQLserver中利用循环语句插入大量的数据
这个在sqlserver里面不好做,要用到sql语言中的变量并且sql语音没有for不过有while,不过一般数据都不会这样批量输入,毕竟不是每条数据都之间都存在内在的联系。如果你真的想用for语句进行录入的话,你就用visual studio连接你的数据库用c#代码来完成这个活。DECLARE @id INT,@username NVARCHAR(50),@Pw...

sql server如何用存储过程把多个表的数据添加到一张表中,表字段都很...
create proc usp_tableall as insert into 表名 --这里表要存在 存储你处理的数据 否则就用select * into from tb 的格式 select col1,col2 from a union all select col1,col2 from b ……go exec usp_tableall

sql server 存储过程传参问题. 一个参数如何可以输入多个参数值_百度知 ...
sql server 2005之后,可以使用xml数据类型传值,然后在存储过程中将xml解析成表,和temp_test表连接。sql server 2008之后,可以使用表变量,传给存储过程。

怎样用sql server的存储过程,把几张表的内容放在同一张临时表中?
CREATE OR REPLACE PROCEDURE PRO_NAME AS BEGIN INSERT INTO TEMP_NAME SELECT A.ID AS ID,A.NAME AS NAME,B.PRICE AS PRICE2010,C.PRICE AS PRICE2011,D.PRICE AS PRICE2012 FROM FRUITS A, PRICE2010 B, PRICE2011 C, PRICE2012 D WHERE A.ID = B.ID AND A.ID = C.ID AND ...

如何向一个sql sever 数据库表中插入大量数据?
下面介绍While 循环插入数据,SQL 代码如下:IF OBJECT_ID('dbo.Nums') IS NOT NULL DROP TABLE dbo.Nums;GO CREATE TABLE dbo.Nums(n INT NOT NULL PRIMARY KEY);DECLARE @max AS INT, @rc AS INT;SET @max = 5000000;SET @rc = 1;INSERT INTO Nums VALUES(1);WHILE @rc * 2 <= ...

在存储过程中如何用一条insert语句同时插入多条记录,而且生成的ID号要...
这和所用的数据库有关,不同的数据库对SQL标准支持有差异,同时存储过程等功能的实现和使用也不一样,就连INSERT的语法也有区别,需要结合具体的数据库来看,请详细说明所用数据库环境(包括版本号),或自己查阅相关手册(手册中应该有相应的说明。)对于ms sql server 2005,可以用 insert into test_...

如何同时往数据库中插入多条记录???
不同数据库之间略有不同,以几大主流数据库(oracle,sqlserver,mysql)为例。oracle(以插入三条为例),结尾分号不可省略,否则会报错。insert into test values (1,'张三');insert into test values (2,'李四');insert into test values (3,'王五');sqlserver(以插入三条为例),语法同...

...实现对表数据的删除 修改和添加!(sql server数据库)
1、使用账户和密码,连接到自己的数据库。2、 找到自己的数据库->【可编程性】->存储过程。3、 打开【存储过程】的子菜单,显示的存储过程如图所示。可以找到详细信息。4、 选中存储过程,右键菜单中选择【修改】。5、存储过程或者函数 显示代码如图所示,即可以修改。6、或者右键菜单中选择【编写存储...

asp.net 一条sql语句向数据库中插入多条记录?
可以借助SqlServer对Xml的支持一次把数据传到Sqlserver中批量插入或修改。可以参考如下存储过程:sp_xml_preparedocument OPENXML sp_xml_removedocument

相似回答