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

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 。。。

是不能解决问题的。
各位大虾帮帮忙
...全文
207 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用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,837

社区成员

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

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