⑴ sql server 数据库 问题 select 返回结果 问题
通过函数转换为日期,减一天就可以了,sqlserver数据库里面函数不太熟, 你可以网上找一下,如果是MySQL可以用strtodate,Oracle可以用todate
⑵ sql server 清除结果 怎么恢复
SQL Server中误删除数据的恢复本来不是件难事,从事务日志恢复即可。但是,这个恢复需要有两个前提条件:
1. 至少有一个误删除之前的数据库完全备份。
2. 数据库的恢复模式(Recovery mode)是“完整(Full)”。
针对这两个前提条件,会有三种情况:
情况一、如果这两个前提条件都存在,通过SQL语句只需三步就能恢复(参考文章),无需借助第三方工具。
a) 备份当前数据库的事务日志:BACKUP LOG [数据库名] TO disk= N'备份文件名' WITH NORECOVERY
b) 恢复一个误删除之前的完全备份:RESTORE DATABASE [数据库名] FROM DISK = N'完全备份文件名' WITH NORECOVERY, REPLACE
c) 将数据库恢复至误删除之前的时间点:RESTORE LOG [数据库] FROM DISK = N'第一步的日志备份文件名' WITH STOPAT = N'误删除之前的时间点' , RECOVERY
情况二、如果第1个前提条件不存在,第2个前提条件存在,需要借助第三方工具。
情况三、如果第2个前提条件不存在,无法恢复。所以,一定要将数据库恢复模式设置为“完整(Full)”。
我现在面临的是第二种情况,需要找第三方工具。
开始找的是Log Explorer for SQL Server,不支持SQL Server 2008。
后来找的是SQL Log Rescue,也不支持SQL Server 2008。
接着找到的是SysTools SQL Recovery,支持SQL Server 2008,但需要购买,Demo版并没有数据恢复功能。
最终在officerecovery.com上找到Recovery for SQL Server,虽然也是商业软件,需要购买,但Demo版可以恢复数据,只要数据库文件不超过24Gb。幸好朋友的数据库文件不大,用它完成了误删除数据的恢复。
下面分享一下用Recovery for SQL Server进行恢复的操作步骤:
1. 运行Recovery for SQL Server
2. 点击菜单中的 File > Recover,选择要恢复的数据库的数据文件(.mdf)
3. Next > Next,进入 Recovery Configuration 界面,选择Custom(选择了Custom才可以选择从日志中恢复误删除的数据)。
4. Next 进入 Recovery options 窗口,选中 Search for deleted records,并选择要恢复的数据库的日志文件路径(log file path)。
5. Next 并选择目标文件夹(Destination folder),用于存放恢复过程中生成的SQL语句与bat文件。
6. 点击Start,开始恢复操作(在上一步选择的目标文件夹中生成相应的SQL文件与Bat文件),然后,出现 SQL Server Database Creation Utility 窗口。
7. Next,选择被恢复数据存放的目标数据库。
8. Next, 选择 Import availiable data from both database and log files
9. Next, Next, 然后就完成数据的恢复!
⑶ SQL语句怎样返回查询结果
stringconnString="server=127.0.0.1;uid=sa;pwd=;database=TJPTTC";SqlConnectionconn=newSqlConnection(connString);
SqlCommandcmd=conn.CreateCommand();
//sql语句
cmd.CommandText="selectcount(*)cntfromStudent";
SqlDataReaderdr=cmd.ExecuteReader();
dr.Read();
Stringcount=dr["cnt"].toString();//这个就是你要的个数
//关闭连接
conn.Close();
⑷ sql语句如何这样查询在查询结果中区分评论和回复,使用简单的单表自连接查询
创建测试表,字段名看不清,自己起的
createtabletest
(idint,
contentvarchar(2000),
releasetimedatetime,
personvarchar(100),
parent_idint)
insertintotestvalues(1,'今天心情不好','2017-04-2111:26:21','曹操',0)
insertintotestvalues(2,'为什么呢','2017-04-2111:33:28','司马懿',1)
insertintotestvalues(3,'对啊,为什么呢','2017-04-2111:34:05','曹操',1)
insertintotestvalues(4,'其实我也不知道为啥不好','2017-04-2111:34:43','曹操',2)
insertintotestvalues(5,'其实我也不知道为啥不好','2017-04-2111:34:43','曹操',3)
insertintotestvalues(6,'我知道心情为啥不好','2017-04-2111:35:36','诸葛亮',1)
insertintotestvalues(7,'那你说说为啥不好','2017-04-2111:35:49','曹操',6)
insertintotestvalues(8,'因为你家司马懿不行了','2017-04-2112:05:47','诸葛亮',7)
insertintotestvalues(9,'管我啥事','2017-04-2112:06:18','司马懿',8)
insertintotestvalues(10,'既生亮何生瑜','2017-04-:38:21','周瑜',0)
insertintotestvalues(11,'经典说得好,周先生','2017-04-:38:43','诸葛亮',10)
insertintotestvalues(12,'厉害了我的哥','2017-04-:39:02','曹操',11)
insertintotestvalues(14,'亮啊,你别生周先生的气','2017-04-:40:46','司马懿',10)
insertintotestvalues(15,'没看懂','2017-04-:41:12','粟裕',10)
insertintotestvalues(16,'别说话,小草','2017-04-:41:59','诸葛亮',12)
sqlserver下语句:
withtas
(selectt1.parent_id,t1.id,t1.personperson1,t2.personperson2,t1..parent_id=t2.id)
selectcasewhent.parent_id=0thenperson1+'【发布】:'+content
whent.parent_idin(selectidfromtwhereparent_id=0)thenperson2+'【评论】'+person1+'说:'+content
elseperson2+'【回复】'+person1+'说:'+contentend
fromt
结果:
⑸ 怎样返回sql函数的结果
用过程试一下:起重要在SQL-SERVER中建立一个过程返回Host_Name()函数的值然后在DELPHI中建立TStoredProc激活即可返回!因为这不是SQL语句的部分,所以弗成以用SQL语句!
⑹ sql语句模糊查询返回结果再查的问题
查询结果数目大于一时,其左边不能用等号:
select * from 表名 as a where exists(select 编码 from 表名 where 名称 like '*关键字*' and (left(编码,1)=a.编码 or left(编码,2)=a.编码 or left(编码,4)=a.编码 or left(编码,6)=a.编码) )
如果是在access里写的话,通配符用 * ,如果是在程序里写的话,通配符还是%(数据库引擎会自动把%转为*)
⑺ SQL里面查询判定,并且返回结果
select distinct ty_no, case when exists(select 1 from 表 b where b.ty_no=a.ty_no and b.prc_id='不合格') then '不合格' else '合格' end prc_id from 表 a
⑻ 在SQL中,如何在查询结果中返回记录及其记录数
当然可以:
select 字母,count(*) as 数量 from table group by 字母;
其中:“字母”为表中字段名,“数量”为查询后所显示的内容。
这个绝对正解!
⑼ 在vb 里写的sql语句如何返回结果,如下段代码
少年,像你这样写语句就相当于把所有语句都写在一行上了,这样是不能被编译器准确编译的。还有把SQL语句嵌到VB中,你得先写好数据库连接语句,不然你写的语句再对也读取不到数据库数据不是。再看书研究一下吧
⑽ 怎么样返回SQL查询的结果
select返回的是记录集,你这么用是什么意思?@p1又是干什么的?
OUTPUT参数最多只能返回游标,而且这个SP根本用不到游标
create proc ProRandGet ()
as
begin
select top 5 Qid from Q_select where type='1' order by newid()
end
GO
直接返回整个记录集,这样就可以啊