好吧,我早上有点发傻了,问题还没解决,重新发帖

zhouzangood 2011-03-10 12:47:23
对于早上的问题:
把储存过程刷出来的数据存到数据库
http://topic.csdn.net/u/20110310/10/7271ba25-32a2-47e9-b9b1-8229e850ef3b.html
我用存储过程刷出来一张表(分别取了2两张表的数据)的数据有几万行,因为数据太多,不可能用insert into 一行一行的插入把???
数据结构是这样的:
表a(用储存过程刷出来的表)
编号(bh) 姓名(xm) 性别(xb) 爱好(ah)
1 张三 男 游泳
2 李四 女 登山
3 王五 男 羽毛球
.......


表b(数据库中的一张表)
编号(bh) 姓名(xm) 性别(xb) 爱好(ah)
......(等待导入)

也就是说我会用储存过程刷出一张和表b一样结构的数据表a

重点:表a位于数据库ZA中
表b位于数据库ZZ中

也就是说这2张表是在不同数据库中的

insert tb select ....
或者
insert tb exec 。。。

是不能解决问题的。
各位大虾帮帮忙
...全文
216 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
快溜 2011-03-10
  • 打赏
  • 举报
回复
insert into A库.dbo.tablename
exec B库.dbo.procname
yibey 2011-03-10
  • 打赏
  • 举报
回复
use [ZA]
select * into ta from ZB..tb

这样不行么
Xiao_Ai_Mei 2011-03-10
  • 打赏
  • 举报
回复
表a位于数据库ZA中
表b位于数据库ZZ中

也就是说这2张表是在不同数据库中的

insert zz.dbo.tb select ....
或者
insert zz.dbo.tb exec 。。。
gw6328 2011-03-10
  • 打赏
  • 举报
回复

insert tb select ....
或者
insert tb exec 。。。
这个怎么不能解决,带上数据库名

insert into db1.dbo.tb select * from db2.dbo.tb

王向飞 2011-03-10
  • 打赏
  • 举报
回复
不同库也可以用的,做一个“链接服务器”即可。

或者你用一个临时表
declare @t table (id int ,tName varchar(20))
insert @t exec 。。。
duoxu1983 2011-03-10
  • 打赏
  • 举报
回复

select * into a from b

zhouzangood 2011-03-10
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 fredrickhu 的回复:]
第三步不就是insert么??
insert into ..select ....
[/Quote]

dt里面的数据要怎么insert?
我是要一次性插入,不要一条一条插入

我的数据库是sybase的
sound02 2011-03-10
  • 打赏
  • 举报
回复
sql server 2008 能夠直接傳遞表參數給存儲過程效率還好。
或用 SqlBulkCopy 也不錯
--小F-- 2011-03-10
  • 打赏
  • 举报
回复
第三步不就是insert么??
insert into ..select ....
zhouzangood 2011-03-10
  • 打赏
  • 举报
回复
刚休息了下,我试过了。在insert 后加数据库名的可以成功的。
O(∩_∩)O~sql板块的高手果然好多。
不过,能不能问下,我一开始用的方法的:
第一步,用储存过程刷出一个表,
第二步,用程序调用储存过程,并把刷出的表储到1个临时表
DataTable dt=new DataTable();
using (OleDbConnection OleDbConn = new OleDbConnection("Provider=Sybase.ASEOLEDBProvider.2;Server Name=172.26.253.112;Initial Catalog=gsj;User ID=sa;Password=ora4500;"))
{
OleDbCommand OleDbCmd = new OleDbCommand();
OleDbDataAdapter OleDa = new OleDbDataAdapter();
OleDbCmd.Connection = OleDbConn;
OleDbCmd.CommandText = "z_zzzaaa";
OleDbCmd.CommandType = CommandType.StoredProcedure;
OleDa.SelectCommand = OleDbCmd;
OleDbConn.Open();
OleDa.Fill(dt);
OleDbConn.Close();
}
return dt;

第三步,把dt里面的数据一次插入数据库中

前面第一、第二步都可以了,dt里面也有数据了。
问题是我不会第三步,可以问下,各位大虾们,这第3步可以实现吗???
永生天地 2011-03-10
  • 打赏
  • 举报
回复
lz为何不亲自试试看

34,872

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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