首页 >>  正文

sql编写一个存储过程

来源:baiyundou.net   日期:2024-09-21

服务器数据恢复环境:

一台安装windows server操作系统的服务器。一组由8块硬盘组建的RAID5,划分LUN供这台服务器使用。

在windows服务器内装有SqlServer数据库。存储空间LUN划分了两个逻辑分区。

服务器故障&初检:

由于未知原因,Sql Server数据库文件丢失,丢失数据涉及到3个库,表的数量有3000左右。数据库文件丢失原因还没有查清楚,也不能确定数据存储位置。

数据库文件丢失后服务器仍处于开机状态,所幸没有大量数据写入。

将raid5中所有磁盘编号后取出,经过硬件工程师检测,没有发现明显的硬件故障。以只读方式将所有磁盘进行扇区级的全盘镜像,镜像完成后将所有磁盘按照编号还原到原硬盘槽位。后续的数据分析和数据恢复操作都基于镜像文件进行,避免对原始磁盘数据造成二次破坏。

1、基于镜像文件分析所有硬盘的底层数据,获取该组RAID5相关信息及内部数据块信息,利用这些获取到的信息虚拟重组RAID。

重组RAID:

北亚企安数据恢复——数据库数据恢复

2、完成raid5阵列重组后,提取LUN内两个分区的镜像。

3、扫描文件系统内丢失的文件,但是没有找到丢失的数据库文件,在文件系统层面无法恢复数据。

服务器数据恢复过程:

1、通过初检确定无法从文件系统层面恢复数据后,北亚企安数据恢复工程师只能采取通过扫描数据页并提取页内记录的方案恢复数据库数据。

2、使用北亚企安自主开发的数据页扫描程序扫描&提取分区内的数据页。在扫描两个分区的镜像后发现一个分区(系统分区)内数据页数量极少且数据页断裂情况严重;另一分区内扫描到数据页个数较多了,应该就是数据库文件的存储空间。

扫描数据页:

北亚企安数据恢复——数据库数据恢复

3、Sql Server数据库使用系统表来管理所有用户表,这些系统表记录了各表的列数、数据类型及约束信息等。解析系统表过程中发现提取出的数据页内的系统表损坏,无法正常读取信息。在与用户方沟通后才得知有备份文件,且备份后没有对表结构进行大的改动,系统表可用。

4、还原备份。

北亚企安数据恢复——数据库数据恢复

5、分别提取三个丢失的数据库中各表的表结构信息。

提取表结构信息:

北亚企安数据恢复——数据库数据恢复

6、解析表结构脚本。将各表的列信息存入数据库内。

扫描脚本文件:

北亚企安数据恢复——数据库数据恢复

将表结构信息存入数据库:

北亚企安数据恢复——数据库数据恢复

7、解析系统表获取用户表id信息、关联表结构与数据页。

8、新建数据库,使用北亚企安自主开发的程序解析记录并导入到新建的数据库环境内。

9、整理恢复结果。在数据库文件所在的分区内除了数据库文件,还存放有备份文件,所以在导出的记录中应该存在重复的数据,必须将数据去重。北亚企安数据恢复工程师编写SQL存储过程对数据进行去重。

数据库去重:

北亚企安数据恢复——数据库数据恢复

10、处理完数据后交由用户方验证数据。用户方对数据进行检查后确认恢复出来的数据有效。在数据恢复工程师的协助下,用户方将恢复出来的数据迁移到准备好的存储设备中。本次数据恢复工作完成。

","gnid":"95703827f574acbe4","img_data":[{"flag":2,"img":[{"desc":"","height":"696","title":"","url":"https://p0.ssl.img.360kuai.com/t011635f5cb1a6da4fd.jpg","width":"1172"},{"desc":"","height":"338","title":"","url":"https://p0.ssl.img.360kuai.com/t0170582bcddebb698b.jpg","width":"1346"},{"desc":"","height":"424","title":"","url":"https://p0.ssl.img.360kuai.com/t01509aea7ae0952a17.jpg","width":"864"},{"desc":"","height":"404","title":"","url":"https://p0.ssl.img.360kuai.com/t01f40a2bb25ea95c3c.jpg","width":"715"},{"desc":"","height":"234","title":"","url":"https://p0.ssl.img.360kuai.com/t01c9aa08f8407d513b.jpg","width":"1222"},{"desc":"","height":"233","title":"","url":"https://p0.ssl.img.360kuai.com/t011038895816c21ce5.jpg","width":"747"},{"desc":"","height":"271","title":"","url":"https://p0.ssl.img.360kuai.com/t01fc8f213b02ea9413.jpg","width":"746"}]}],"original":0,"pat":"art_src_3,fts0,sts0","powerby":"pika","pub_time":1712818440000,"pure":"","rawurl":"http://zm.news.so.com/140ab8b7c3413f4c4e0c26ec8c676585","redirect":0,"rptid":"5fdeda8d4eb2cf41","rss_ext":[],"s":"t","src":"数据恢复资讯","tag":[],"title":"服务器数据恢复—Sql Server数据库数据恢复案例

俞亚义2081sqlserver怎么创建存储过程 -
廉服姿13085606163 ______ 第一步:点击数据库下的“可编程性”,选择“存储过程”,点击鼠标右键,选择“新建存储过程” 第二步:在create PROCEDURE 后 输入存储过程的名字,紧跟着的就是定义存储过程的参数,接下来就可以去编写自己所需要组...

俞亚义2081SQL存储过程实例 -
廉服姿13085606163 ______ 楼上的是ORACLE的存储过程语法,SQLSERVER的语法略有不同. 举个例子: 员工表(tb_employee)字段如下 emp_id 员工编号, emp_nm 员工姓名, dept_id 所属部门编号, salary 工资收入 编写存储过程查询某部门员工的工资总和. 那么分析可以知道,这个存储过程的输入参数就是部门编号 create procedure sp_sum_salary @dept_id varchar(20) as --------直接以查询语句输出 select sum(salary) from tb_employee where dept_id = @dept_id

俞亚义2081SQL编写存储过程题 急!!!!进 -
廉服姿13085606163 ______ 1.Create proc updatascore @sno varchar(100) as Begin Update tablename set score=score+10 where sno=@sno End2.Create proc averagescore as Begin select count(*),avg(score) from tablename group by cno,sex having cno='NET10020' and ...

俞亚义2081SQL这个存储过程咋写? -
廉服姿13085606163 ______ 存储过程里用动态语句比如create procedure ptest@colname nvarchar(50),@key nvarchar(50)asdeclare @sqlstr nvarchar(4000)set @sqlstr='select * from 表where '+@colname+'=...

俞亚义2081编写一个SQLSERVER 存储过程 -
廉服姿13085606163 ______ 代码是最好的文字,不多说,请看我的代码,并给分,呵呵.--step1. 建表if exists(select * from sysobjects where id=object_id('student') and objectproperty(id,'IsTable...

俞亚义2081一个简单的SQL存储过程 -
廉服姿13085606163 ______ --判断存储过程是否存在 if exists (select * from sysobjects where name='usp_getStuByID) drop procedure usp_getStuByID--删除存储过程 go create procedure usp_getStuByID @stuId int as select s.stuName, couName from STU as s, Course as c, stuCourse as sc where s.stuID = sc.stuID and c.couID = sc.couID go --执行存储过程 exec usp_getStuByID 007;

俞亚义2081请帮我编写一个SQL存储过程 -
廉服姿13085606163 ______ C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root,该路劲下的文件为调试时,VS.NET2005生成的临时文件,可能是因为该项目资源文件(如图标,图片等格式不正确造成的).将刚加的一个文件(比如图标)换成一个标准的文件(图标文件)后 重新编译,应该能成功的~~~

俞亚义2081sql语句编写存储过程,使用游标循环打印学生表中的数据,求大神 -
廉服姿13085606163 ______ 写一个例子给楼主看下就知道了: 在sqlserver2000中新建一个存储过程: CREATE PROCEDURE PK_Test AS //声明1个变量 declare @name nvarchar(20) //声明一个游标mycursor,select语句中参数的个数必须要和从游标取出的变量名相同 ...

俞亚义2081用动态sql的知识,写一个这样的存储过程 -
廉服姿13085606163 ______ create table #a(id int) create table #b(id int) insert into #...

俞亚义2081怎样使用SQLServer开发应用程序编写存储过程?
廉服姿13085606163 ______ 使用 SQL Server 开发应用程序编写存储过程与触发器 存储过程和触发器是由用户创建的、驻留在服务器的一组 Transact SQL 查询语句.触发器是系统在特定条件下执行...

(编辑:自媒体)
关于我们 | 客户服务 | 服务条款 | 联系我们 | 免责声明 | 网站地图 @ 白云都 2024