溜溜问答 > 综合其他 > 其他 > sql数据库如何提取数据?
kiss mayue
kiss mayue
邀请你来回答
71人阅读 2021-09-17

sql数据库如何提取数据?

我要提取sql数据库中所有表中时间大于2009-08-07的记录,应该怎么搞,重点如何知道数据库中的所有表!!!还有如何提取所以表中的记录!!!! 可以放到另外一个数据库中,该如何写???? 所以有用户表,我的目的其实也就是把一个数据库中的大于如上时间的记录放到另外一个数据库中,每个表都有时间字段的,如果没有又该怎么办??
我要回答
3个回答

这个不太好弄,不同表的表结构也是不一样的,提取出来的记录不可能存放在一起

尝试用Procedure来完成吧

使用select table_name from user_tables;得到该用户下所有的表,然后再一个表一个表的提取并存放符合条件的记录

查看全部
2021-09-17
(1) 回复 采纳

“所有表中时间大于2009-08-07的记录”
1. 你需要知道,这些表中,是否有时间字段?
2. 是某个数据库中的所有表,还是所有数据库中的所有表?

查看全部
2021-09-17
(1) 回复 采纳

1、查询数据库(test)中的所有表名的方法:

select name
from [test]..sysobjects where xtype='u'
********
补充:
如果有的表不存在【时间】那就用下面的语句直接把含有【时间】列的表名找到:
select d.name
from [test]..syscolumns a
inner join [test]..sysobjects d on a.ID=d.ID and d.xtype='u' and a.name='时间'
**********

2、遍历这个表名取出数据插入到另外的数据库中(sqlserver中的遍历方法我不是很清楚,给你提供个思路,oracle的话我就能把程序写出来了o(∩_∩)o~)。

如:遍历结果存储到数据库test2中
insert into [test2]..遍历出的表名 select * from 遍历出的表名 where datediff(day,'2009-08-07',时间)>0;

重复上面的sql语句指导讲数据库test中的表名完全遍历完为止。

*************************************************************
补充:我试验了一下下面把实验代码给你(建一个存储过程)
CReate Proc test as
--定义游标变量
declare cur1 cursor For
select d.name
from [test]..syscolumns a
inner join [test]..sysobjects d on a.ID=d.ID and d.xtype='u' and a.name='时间'
--定义临时变量
declare @tmp varchar(1000)
--定义sql字符串
declare @strsql varchar(4000)
--打开游标
open cur1
--读取第一条数据,也就是第一个表名
fetch next from cur1 into @tmp
--是读完
while(@@fetch_status = 0)
begin
--连接sql文
set @strsql='insert into [test2]..'+@tmp++' select * from '+@tmp+' where datediff(day,'+char(39)+'2009-08-07'+char(39)+',时间)>0'
--执行这个sql
exec(@strsql)
--读取下一条数据
fetch next from cur1 into @tmp
end
--关闭游标
close cur1
--摧毁游标所占资源
deallocate cur1
*************************************************

---
以上,希望对你有所帮助。

查看全部
2021-09-17
(26) 回复 采纳

相关问题

用sql语句怎么从数据库中提取结果?
共5条回答 >
Brave🚶: 1、我们首先在创建一个web页面,用ef导入数据库中的一个实体模型,然后创建一个按钮,点击按钮以后用ef向数据库中执行insert操作。2、下面我们打开数据库,然后选择数据库工具栏中的工具,然后选择Profile工具。3、登录了以后,你会发现牵扯到数据库的所以语句执行都在这里显示出来了。4、然后我们点击我们项目中的“添加”按钮,然后在我们的Profile监听中查看一下他进行了哪些的操作,我们用的登录用户是sa,通过这个我们可以看到语句执行时间。5、执行的sql程序。6、ef自动执行了插入的操作,....
(5) 回复
sql数据库如何导出?
共4条回答 >
عبدو: 一、导出导入sqlserver里某个数据库  1.在sqlserver企业管理器里选中要转移的数据库,按鼠标右键,选所有任务->备份数据库。  2.备份选数据库-完全,  目的备份到按添加按钮  文件名 在sqlserver服务器硬盘下输入一个自定义的备份数据库文件名(后缀一般是bak)  重写选重写现有媒体  最后按确定按钮。  如果生成的备份数据库文件大于1m,要用压缩工具压缩后再到internet上传输。  3.通过ftp或者remotedesktop或者pcanywhere等方法  把第....
(337) 回复
创建数据库的sql语句怎么写?
共2条回答 >
قۇرمان: 自己定义的文件路径(说明是要找f盘下的一个叫职员管理.mdf的文件):filename='f=\Programfiles\Microsoftsqlserver\mssql\data\职员管理,mdf',//其中"f="应该为"f:","职员管理,mdf"应该为"职员管理.mdf"不明白可以再hi我
回复
关于sql数据库提取数据的问题
共2条回答 >
Chase: 打开sql企业管理器,把所涉及的两个数据库都连接上打开旧数据库表-->随便点击某个表右键-->所有任务-->导出数据-->下一步-->数据源服务器设置好-->下一步--->目标数据库设置好-->哪些需要复制过来的表打上勾--->继续ok搞定了,数据表结构以及表中数据就全部复制过来了,至于你取部分数据什么的,自己通过sql查询分析器去修改表中的数据吧
(1) 回复
如何在一台电脑的sql数据库中提取数据用于别的电脑中的sql数据库?
共2条回答 >
殷红的菜菜: 这个要看你什么数据库喽,没一种数据库都提供你说的需求,就拿mysql来说,这里就有导入到处,还有对于sqlserver来说,导出数据简单,然后在另一台电脑上附加数据库
回复
发表成功!
感谢您的分享!
好的
官方微信群

(微信添加“妙妙”或“笑笑”,邀您进群)