当前位置:文档之家› 如何在C#中使用存储过程(SQL Server 2000)

如何在C#中使用存储过程(SQL Server 2000)

如何在C#中使用存储过程(SQL Server 2000)
如何在C#中使用存储过程(SQL Server 2000)

如何在C#中使用存储过程(SQL Server 2000).txt-//自私,让我们只看见自己却容不下别人。如果发短信给你喜欢的人,他不回,不要再发。看着你的相片,我就特冲动的想P成黑白挂墙上!有时,不是世界太虚伪,只是,我们太天真。如何在C#中使用存储过程(SQL Server 2000)

文章录入:https://www.doczj.com/doc/576104534.html, 责任编辑:https://www.doczj.com/doc/576104534.html, 298

【字体:小大】

要在C#中使用存储过程,首先看看test表的创建sql语句:

create table test55

(

uid int identity(1,1),

class1 varchar(20),

class2 varchar(20),

uname varchar(20),

birth smalldatetime,

meno varchar(50)

)

alter table test55

add constraint primary_id primary key(uid)

创建一个有输入、输出、返回值参数的存储过程:

create proc proc_out @uid int,@output varchar(200) output

as

--select结果集

select * from test where uid>@uid

--对输出参数进行赋值

set @output='记录总数:'+convert(varchar(10),(select count(*) from test))

--使用return,给存储过程一个返回值。

return 200;

go

在C#中使用存储过程:

使用带有参数的sql语句

private void sql_param()

{

SqlConnection conn=new SqlConnection("server=.;uid=sa;pwd=1234;database=china");

//在sql语句当中引入了@myid参数

string sql="select * from test where uid>@myid";

SqlCommand comm=new SqlCommand(sql,conn);

//使用comm的Parameters属性的add方法,对上述的@myid参数进行定义和赋值

//SqlDbType类提供了与SqlServer数据类型一致的数据库类型

SqlParameter sp=comm.Parameters.Add("@myid",SqlDbType.Int);

sp.Value=10;//对输入参数赋值

//Command对象默认的执行方式为Text,不写下句亦可

https://www.doczj.com/doc/576104534.html,mandType=CommandType.Text;

//将Command对象作为DataAdapter的参数传进

SqlDataAdapter da=new SqlDataAdapter(comm);

DataSet ds=new DataSet();

da.Fill(ds);

//绑定数据到DataGrid1控件上

this.DataGrid1.DataSource=ds;

this.DataGrid1.DataBind();

}

存储过程的使用标准版

private void sql_proc()

{

SqlConnection conn=new SqlConnection("server=.;uid=sa;pwd=1234;database=china");

string sql="proc_out";

SqlCommand comm=new SqlCommand(sql,conn);

//把Command执行类型改为存储过程方式,默认为Text。

https://www.doczj.com/doc/576104534.html,mandType=CommandType.StoredProcedure;

//传递一个输入参数,需赋值

SqlParameter sp=comm.Parameters.Add("@uid",SqlDbType.Int);

sp.Value=10;

//定义一个输出参数,不需赋值。Direction用来描述参数的类型

//Direction默认为输入参数,还有输出参数和返回值型。

sp=comm.Parameters.Add("@output",SqlDbType.VarChar,50);

sp.Direction=ParameterDirection.Output;

//定义过程的返回值参数,过程执行完之后,将把过程的返回值赋值给名为myreturn 的Paremeters赋值。

sp=comm.Parameters.Add("myreturn",SqlDbType.Int);

sp.Direction=ParameterDirection.ReturnValue;

//使用SqlDataAdapter将自动完成数据库的打开和关闭过程,并执行相应t-sql语句或存储过程

//如果存储过程只是执行相关操作,如级联删除或更新,使用SqlCommand的execute 方法即可。

SqlDataAdapter da=new SqlDataAdapter(comm);

DataSet ds=new DataSet();

da.Fill(ds);

//在执行完存储过程之后,可得到输出参数

string myout=comm.Parameters["@output"].Value.ToString();

//打印输出参数:

Response.Write("打印输出参数:"+myout);

//打印存储过程返回值

myout=comm.Parameters["myreturn"].Value.ToString();

Response.Write("存储过程返回值:"+myout);

this.DataGrid1.DataSource=ds;

this.DataGrid1.DataBind();

}

存储过程的使用最简版:

private void sql_jyh()

{

//最简写法,把存储过程当作t-sql语句来使用,语法为:exec 过程名参数

SqlConnection conn=new SqlConnection("server=.;uid=sa;pwd=1234;database=china");

string sql="execute proc_out 10,'12'";

SqlCommand comm=new SqlCommand(sql,conn);

//使用SqlDataAdapter将自动完成数据库的打开和关闭过程,并执行相应t-sql语句或存储过程

//如果存储过程只是执行相关操作,如级联删除或更新,使用SqlCommand的execute方法即可。

SqlDataAdapter da=new SqlDataAdapter(comm);

DataSet ds=new DataSet();

da.Fill(ds);

//绑定数据

this.DataGrid1.DataSource=ds;

this.DataGrid1.DataBind();

}

本文引用地址:

摘自红色黑客联盟(https://www.doczj.com/doc/576104534.html,) 原文:https://www.doczj.com/doc/576104534.html,/kf/201011/78541.html

SQLServer存储过程返回值总结.

SQLServer 存储过程返回值总结 1. 存储过程没有返回值的情况 (即存储过程语句中没有 return 之类的语句用方法 int count = ExecuteNonQuery(..执行存储过程其返回值只有两种情况 (1假如通过查询分析器执行该存储过程,在显示栏中假如有影响的行数,则影响几行 count 就是几 (2假如通过查询分析器执行该存储过程, 在显示栏中假如显示 ' 命令已成功完成。 ' 则 count = -1;在显示栏中假如有查询结果,则 count = -1 总结:A.ExecuteNonQuery(该方法只返回影响的行数,假如没有影响行数,则该方法的返回值只能是 -1,不会为 0。 B.不论 ExecuteNonQuery(方法是按照 CommandType.StoredProcedure 或者 CommandType.Text 执行, 其效果和 A 一样。 --------------------------------------------------------------------------------------------------------------------------------------------------- 2. 获得存储过程的返回值 --通过查询分析器获得 (1不带任何参数的存储过程 (存储过程语句中含有 return ---创建存储过程 CREATE PROCEDURE testReturn AS return 145 GO ---执行存储过程

DECLARE @RC int exec @RC=testReturn select @RC ---说明 查询结果为 145 (2带输入参数的存储过程 (存储过程语句中含有 return ---创建存储过程 create procedure sp_add_table1 @in_name varchar(100, @in_addr varchar(100, @in_tel varchar(100 as if(@in_name = '' or @in_name is null return 1 else begin insert into table1(name,addr,tel values(@in_name,@in_addr,@in_tel return 0

MS SQL Server 2000数据库安装手册

MS SQL Server 2000数据库安装手册 本系统需要微软SQL Server数据库的支持,因此,运行本系统之前首先段安装微软SQLServer数据库,本手册以SQL Server 2000为例说明安装注意事项。 注:一般情况下本公司不提供Microsoft SQL Server的安装程序,请用户自行购买!1.1 Microsoft SQLServer2000各版本的运行环境 Microsoft SQL Server 2000有企业版、标准版、个人版等版本,与之相匹配的操作系统 操作系统企业版标准版个人版开发版MSDE 评估版Windows 2000 DataCenter 支持支持支持支持支持支持 Windows 2000 Advanced Server 支持支持支持支持支持支持 Windows 2000 Server 支持支持支持支持支持支持 Windows 2000 Professional 支持支持支持支持 Windows 98、WindowsMe 支持支持 1.2 安装Microsoft SQL Server2000 Microsoft SQL Server2000各版本安装步骤基本相同(MSDE 版除外,在1.3说明),下面我们就以微软SQLServer2000个人版为例进行介绍: 将Microsoft SQL Server 2000安装光盘放入光驱后,安装程序将自动运行;也可手动双击执行光盘根目录下的autorun.exe。安装界面中共有5个选项,单击【安装SQL Server 2000组件(C)】选项,如下图; 在接着出现的安装界面中选择【安装数据库服务器(S)】选项;

SqlServer存储过程基本语法

动态语句基本语法 1 :普通SQL语句可以用exec执行 Select * from tableName exec('select * from tableName') exec sp_executesqlN'select * from tableName' -- 请注意字符串前一定要加N 2:字段名,表名,数据库名之类作为变量时,必须用动态SQL declare @fnamevarchar(20) set @fname = 'FiledName' Select @fname from tableName -- 错误,不会提示错误,但结果为固定值FiledName,并非所要。exec('select ' + @fname + ' from tableName') -- 请注意加号前后的单引号的边上加空格 当然将字符串改成变量的形式也可 declare @fnamevarchar(20) set @fname = 'FiledName' --设置字段名 declare @s varchar(1000) set @s = 'select ' + @fname + ' from tableName' exec(@s) -- 成功 exec sp_executesql @s -- 此句会报错 declare @s Nvarchar(1000) -- 注意此处改为nvarchar(1000) set @s = 'select ' + @fname + ' from tableName' exec(@s) -- 成功 exec sp_executesql @s -- 此句正确 3. 输出参数 declare @numint, @sqlsnvarchar(4000) set @sqls='select count(*) from tableName' exec(@sqls) --如何将exec执行结果放入变量中? declare @numint, @sqlsnvarchar(4000) set @sqls='select @a=count(*) from tableName ' execsp_executesql @sqls,N'@aint output',@num output select @num 1 :普通SQL语句可以用Exec执行例: Select * from tableName Exec('select * from tableName')

SQL SERVER2000数据备份与恢复

SQL Server2000数据备份与恢复 Author looger 1.数据库备份 1.1展开服务器组,然后展开服务器。展开“数据库”文件夹,右击数据库,指向“所 有所有”子菜单,然后单击“备份数据库”命令。 1.2在“名称”框内输入备份集名称,在“描述”框中输入对备份集的描述。在“备 份”选项中选择备份方式。

1.3点击“添加”按钮以添加现有的目的地或创建新的目的地,点击按钮可以选择一个备份文件

1.4点击按钮后,在下面出现的窗口中选择一个文件作为备份文件,可以在“文件名” 后面的文本框中输入一个新的文件名以创建一个备份文件。 1.5此时刚才选择的文件被加入到备份文件中。如果要添加其他的文件,则可以点击“添 加”按钮添加其他的文件。在"重写"选项下,单击“追加到媒体”,将备份追加到备份设备上任何现有的备份中;点击“重写现有媒体”,将重写备份设备中任何现有的备份

1.6可以选择“调度”复选框调度备份操作在以后执行或定期执行。点击“调度”后 面的按钮可以对调度进行设置 1.7在点击按钮后,可以在下面的对话框中设置调度的名称和调度的类型。如果需要调 度反复出现,则可以点击“更改”按钮

1.8点击“更改”按钮后,可以在下面的窗口中设置作业发生的时机 1.9单击“选项”选项卡。选择“完成后验证备份”复选框,在备份时对备份进行验 证。选择“检查媒体集名称和备份集到期时间”,检查备份媒体以防意外重写。在“媒体集名称”框中,输入将用于备份操作的媒体的名称。如果仅指备份集到期时间,则将其保留为空

2.数据库的恢复 2.1展开服务组,然后展开服务器。展开“数据库”文件夹,右击数据库, 指向“所有任务”子菜单,然后单击“还原数据库”命令 2.2在“还原为数据库”框中,如果要还原的数据库名称与显示的默认数据库名称不同,请在其中进行输入或选择。若要用新名称还原数据库,请输入新的数据库名称

SqlServer存储过程的事务模式编写

SQL Server在存储过程中编写事务处理代码的三种方法 SQL Server中数据库事务处理是相当有用的,鉴于很多SQL初学者编写的事务处理代码存往往存在漏洞,本文我们介绍了三种不同的方法,举例说明了如何在存储过程事务处理中编写正确的代码。希望能够对您有所帮助。 在编写SQL Server 事务相关的存储过程代码时,经常看到下面这样的写法: begin tran update statement 1 ... update statement 2 ... delete statement 3 ... commit tran 这样编写的SQL存在很大隐患。请看下面的例子: create table demo(id int not null) go begin tran insert into demo values (null) insert into demo values (2) commit tran go 执行时会出现一个违反not null 约束的错误信息,但随后又提示(1 row(s) affected)。我们执行select * from demo 后发现insert into demo values(2) 却执行成功了。这是什么原因呢? 原来SQL Server在发生runtime 错误时,默认会rollback引起错误的语句,而继续执行后续语句。 如何避免这样的问题呢? 有三种方法:

1. 在事务语句最前面加上set xact_abort on set xact_abort on begin tran update statement 1 ... update statement 2 ... delete statement 3 ... commit tran go 当xact_abort 选项为on 时,SQL Server在遇到错误时会终止执行并rollback 整个事务。 2. 在每个单独的DML语句执行后,立即判断执行状态,并做相应处理。 begin tran update statement 1 ... if@@error<>0 begin rollback tran goto labend end delete statement 2 ... if@@error<>0 begin rollback tran goto labend end commit tran labend: go 3. 在SQL Server 2005中,可利用try...catch 异常处理机制。

SqlServer 使用存储过程 导出为Excel

SqlServer 使用存储过程导出为Excel 一个脱离office组件的可以将语句结果导出到Excel的过程 --1.执行时所连接的服务器决定文件存放在哪个服务器 [sql]view plain copy print? 1.CREATE PROC ExportFile 2. @QuerySql VARCHAR(max) 3. ,@Server VARCHAR(20) 4. ,@User VARCHAR(20) = 'sa' 5. ,@Password VARCHAR(20) 6. ,@FilePath NVARCHAR(100) = 'c:\ExportFile.csv' 7.AS 8.DECLARE @tmp VARCHAR(50) = '[##Table' + CONVERT(VARCHAR(36),NEWID())+']' 9.BEGIN TRY 10.DECLARE @Sql VARCHAR(max),@DataSource VARCHAR(max)=''; 11.--判断是否为远程服务器 12. IF @Server <> '.'AND @Server <> '127.0.0.1' 13.SET @DataSource = 'OPENDATASOURCE(''SQLOLEDB'',''Data Source='+@Server+';User ID='+@Us er+';Password='+@Password+''').' 14.--将结果集导出到指定的数据库 15.SET @Sql = REPLACE(@QuerySql,' from ',' into '+@tmp+ ' from ' + @DataSource) 16. PRINT @Sql 17.EXEC(@Sql) 18. 19.DECLARE @Columns VARCHAR(max) = '',@Data NVARCHAR(max)='' 20.SELECT @Columns = @Columns + ',''' + name +''''--获取列名(xp_cmdshell导出文件没有列名) 21. ,@Data = @Data + ',Convert(Nvarchar,[' + name +'])'--将结果集所在的字段更新为nvarchar(避 免在列名和数据union的时候类型冲突) 22.FROM tempdb.sys.columns WHERE object_id = OBJECT_ID('tempdb..'+@tmp) 23.SELECT @Data = 'SELECT ' + SUBSTRING(@Data,2,LEN(@Data)) + ' FROM ' + @tmp 24.SELECT @Columns = 'Select ' + SUBSTRING(@Columns,2,LEN(@Columns)) 25.--使用xp_cmdshell的bcp命令将数据导出 26.EXEC sp_configure 'xp_cmdshell',1 27. RECONFIGURE 28.DECLARE @cmd NVARCHAR(4000) = 'bcp "' + @Columns+' Union All ' + @Data+'" queryout ' + @Fi lePath + ' -c' + CASE WHEN RIGHT(@FilePath,4) = '.csv'THEN' -t,'ELSE''END + ' -T' 29. PRINT @cmd 30.exec sys.xp_cmdshell @cmd 31.EXEC sp_configure 'xp_cmdshell',0 32. RECONFIGURE 33.EXEC('DROP TABLE ' + @tmp) 34.END TRY 35.BEGIN CATCH

在SQL_Server_2000里设置和使用数据库复制订阅

在SQL Server 2000里设置和使用数据库复制订阅 在SQL Server 2000里设置和使用数据库复制之前,应先检查相关的几台SQL Server服务器下面几点是否满足: 1、MSSQLserver和Sqlserveragent服务是否是以域用户身份启动并运行的(.\administrator用户也 是可以的) 如果登录用的是本地系统帐户local,将不具备网络功能,会产生以下错误: 进程未能连接到Distributor '@Server name' (如果您的服务器已经用了SQL Server全文检索服务, 请不要修改MSSQLserver和Sqlserveragent 服务的local启动。 会照成全文检索服务不能用。请换另外一台机器来做SQL Server 2000里复制中的分发服务器。) 修改服务启动的登录用户,需要重新启动MSSQLserver和Sqlserveragent服务才能生效。 2、检查相关的几台SQL Server服务器是否改过名称(需要srvid=0的本地机器上srvname和datasource 一样) 在查询分析器里执行: use master select srvid,srvname,datasource from sysservers 如果没有srvid=0或者srvid=0(也就是本机器)但srvname和datasource不一样, 需要按如下方

法修改: USE master GO -- 设置两个变量 DECLARE @serverproperty_servername varchar(100), @servername varchar(100) -- 取得Windows NT 服务器和与指定的 SQL Server 实例关联的实例信息 SELECT @serverproperty_servername = CONVERT(varchar(100), SERVERPROPERTY('ServerName')) -- 返回运行 Microsoft SQL Server 的本地服务器名称 SELECT @servername = CONVERT(varchar(100), @@SERVERNAME) -- 显示获取的这两个参数 select @serverproperty_servername,@servername --如果@serverproperty_servername和@servername不同(因为你改过计算机名字),再运行下面的 --删除错误的服务器名 EXEC sp_dropserver @server=@servername --添加正确的服务器名 EXEC sp_addserver @server=@serverproperty_servername, @local='local' 修改这项参数,需要重新启动MSSQLserver和Sqlserveragent服务才能生效。 这样一来就不会在创建复制的过程中出现18482、18483错误了。 3、检查SQL Server企业管理器里面相关的几台SQL Server注册名是否和上面第二点里介绍的srvname 一样 不能用IP地址的注册名。 (我们可以删掉IP地址的注册,新建以SQL Server管理员级别的用户注册的服务器名)

列出SQLServer数据库中所有的存储过程

列出SQLServer数据库中所有的存储过程 Dim cn As rdoConnection Dim ps As rdoPreparedStatement Dim rs As rdoResultset Dim strConnect As String Dim strSQL As String '利用 DSNless 连接到 pubs 数据库 '改变参数以适合你自己的 SQL Server strConnect = "Driver={SQL Server}; Server=myserver; " & "Database=pubs; Uid=sa; Pwd=" Set cn = rdoEnvironments(0).OpenConnection(dsName:="", Prompt:=rdDriverNoPrompt, ReadOnly:=False, Connect:=strConnect) strSQL = "Select https://www.doczj.com/doc/576104534.html,,https://www.doczj.com/doc/576104534.html,,https://www.doczj.com/doc/576104534.html,,sc.length " & "FROM syscolumns sc,master..systypes st,sysobjects so " & "WHERE sc.id in (select id from sysobjects where type ='P')" & " AND so.type ='P' " & "AND sc.id = so.id " & "AND sc.type = st.type " & "AND sc.type <> 39" Set ps = cn.CreatePreparedStatement("MyPs", strSQL) Set rs = ps.OpenResultset(rdOpenStatic) list1.AddItem "SP Name,Param Name,Data Type,Length" While Not rs.EOF list1.AddItem rs(0) & " , " & rs(1) & " , " & rs(2) & " , " & rs(3) rs.MoveNext Wend rs.Close Set rs = Nothing cn.Close Set cn = Nothing 【

Java调用SQLServer存储过程分析

Java调用SQL Server存储过程 Java调用SQL Server的存储过程详解,主要内容: ●使用不带参数的存储过程 ●使用带有输入参数的存储过程 ●使用带有输出参数的存储过程 ●使用带有返回状态的存储过程 ●使用带有更新计数的存储过程 1.使用不带参数的存储过程 使用JDBC 驱动程序调用不带参数的存储过程时,必须使用call SQL 转义序列。不带参数的call 转义序列的语法如下所示: 实例:在SQL Server 2005 AdventureWorks示例数据库中创建以下存储过程: 此存储过程返回单个结果集,其中包含一列数据(由Person.Contact 表中前十个联系人的称呼、名称和姓氏组成)。 在下面的实例中,将向函数传递AdventureWorks示例数据库的打开连接,然后使用executeQuery方法调用GetContactFormalNames存储过程。

2.使用带有输入参数的存储过程 使用JDBC 驱动程序调用带参数的存储过程时,必须结合SQLServerConnection 类的prepareCall方法使用call SQL转义序列。带有IN参数的call转义序列的语法如下所示: 构造call转义序列时,请使用?(问号)字符来指定IN参数。此字符充当要传递给该存储过程的参数值的占位符。可以使用SQLServerPreparedStatement类的setter方法之一为参数指定值。可使用的setter方法由IN参数的数据类型决定。 向setter方法传递值时,不仅需要指定要在参数中使用的实际值,还必须指定参数在存储过程中的序数位置。例如,如果存储过程包含单个IN参数,则其序数值为1。如果存储过程包含两个参数,则第一个序数值为1,第二个序数值为2。 作为调用包含IN参数的存储过程的实例,使用SQL Server 2005 AdventureWorks示例数据库中的uspGetEmployeeManagers存储过程。此存储过程接受名为EmployeeID的单个输入参数(它是一个整数值),然后基于指定的EmployeeID返回雇员及其经理的递归列表。下面是调用此存储过程的Java代码:

sqlserver2000数据库置疑的4种解决方法

sqlserver2000 数据库置疑的4种解决方法 方法一: 1.停止SQL Server的服务,然后备份MS SQL Server的安装目录下的\data子目录. 注意:整个目录目录备份或只备份data目录下置疑数据库的两个文件,一个数据文件,一个(也有可能非此命名),同时查看磁盘空间是否有足够的空间; 2.启用SQL Server的服务。打开查询分析器(Query Analyzer)的工具,以用户sa登录; 3.输入如下指令后点工具栏上的绿色箭头运行(快捷键F5), use master go sp_resetstatus dbname go 4.运行完毕后退出此工具,停止SQL Server的服务. 5.在MS SQL Server的安装目录下,有一个\data子目录,其中存放数据文件,包括SQL Server和本系统的数据文件,删除置疑数据库的日志文件(也有可能非此命名). 6.启动SQL Server的服务. 7.打开企业管理器(Enterprise Manager)的工具,查看数据库(database)节点下的dbname是否恢复。 注:请将 dbname 换成你的数据库名称. 方法二 1.查看磁盘空间,保证存放数据库的磁盘有足够的剩余空间; 2.打开SQL Server的查询分析器(Query Analyzer),以用户 sa 登录; 3.输入如下指令后点工具栏上的绿色箭头运行(快捷键F5),运行完毕后退出此工具. use master go sp_resetstatus dbname go 4.停止SQL Server 的服务,再重新启动SQL Server 服务. 5.打开SQL Server 的查询分析器(Query Analyzer),以用户 sa 登录。输入如下指令后点工具栏上的绿色箭头运行,运行完毕后退出此工具: use master go DBCC DBRECOVER (dbname) go 6.打开 SQL Server 的企业管理器(Enterprise Manager),查看 database下的dbname是否恢复。 注:请将 dbname 替换为你的数据库名称. 方法三 如上述两种方法都不能恢复,或出现故障后在SQL Server的企业管理器中的数据库节点下看不到你的数据库,表示你的数据库出现较大的错误或故障,请按下述步骤操作尝试恢复. 1.停止SQL Server 服务. 2.备份数据库文件 在MS SQL Server的安装目录下,有一个\data子目录,其中存放数据文件,包括SQL Server和本系统的数据文件,把数据文件和日志文件备份起来. 3.启动SQL Server服务,打开企业管理器,删除数据库,通常\data子目录下的数据文件和日志文件都会被删除,把备份好的数据文件和日志文件再复制一份到\data子目录下.

SqlServer调用存储过程返回结果集

USE[zhuhaioa7-4] GO /****** Object: StoredProcedure [dbo].[proc_records] Script Date: 12/26/2014 20:31:09 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER procedure[dbo].[proc_records] as DECLARE@map_table table(r_key varchar(100),r_value varchar(50)) DECLARE@type_id varchar(40) DECLARE@type_name varchar(50) DECLARE@project_id varchar(40) DECLARE@project_name varchar(50) DECLARE@payTypeMoney numeric(16, 2) DECLARE@sumPayTypeMoney numeric(16, 2) BEGIN set@payTypeMoney= 0 set@sumPayTypeMoney= 0 --查询项目列表 DECLARE project_cursor CURSOR for select ep_id,ep_name from AB_engineeringPhase where account_id='2' open project_cursor fetch next from project_cursor into@project_id,@project_name while@@FETCH_STATUS= 0 begin

SQL Server 2000数据库的安装及启动

SQL Server 2000数据库的安装及启动 《L102T SQL版》需要微软SQL Server数据库的支持,因此,首先应安装微软SQLServer 数据库,本手册以SQL Server 2000为例说明安装注意事项。 注:本公司不提供Microsoft SQL Server的安装程序,请用户自行购买! 1.1 Microsoft SQLServer2000各版本的运行环境 Microsoft SQL Server 2000有企业版、标准版、个人版等版本,与之相匹配的操作系统 1.2 安装Microsoft SQL Server2000 Microsoft SQL Server2000各版本安装步骤基本相同,下面我们就以微软SQLServer2000企业版为例进行介绍: 将Microsoft SQL Server 2000安装光盘放入光驱后,安装程序将自动运行;也可手动双击执行光盘根目录下的autorun.exe。安装界面中共有5个选项,单击【安装SQL Server 2000组件(C)】选项,如下图; 在接着出现的安装界面中选择【安装数据库服务器(S)】选项;

接着出现“欢迎”界面,如下图: “欢迎”界面 在“欢迎”中单击【下一步】;在“计算机名”界面中,选择“本地计算机”,单击【下一步】,如下图:

在“安装选择”对话框中有三个选项。在第一次安装SQL Server(包括MSDE)的时候,选项“对现有SQL Server实例进行升级…”不可选,即变为灰色。通常情况下,应当选择“创建新的SQL Server实例…”,然后单击【下一步】; “安装选择”界面 在“用户信息”对话框中输入相关信息,单击【下一步】;在“软件许可证协议”对话框中单击“是”;在“安装类型”中选择“服务器和客户端工具”,然后单击【下一步】;

(完整版)SQLSERVER存储过程大总结

SQLSERVER存储过程使用说明书 引言 首先介绍一下什么是存储过程:存储过程就是将常用的或很复杂的工作,预先用SQL语句写好并用一个指定的名称存储起来,并且这样的语句是放在数据库中的,还可以根据条件执行不同SQL语句,那么以后要叫数据库提供与已定义好的存储过程的功能相同的服务时,只需调用execute,即可自动完成命令。 请大家先看一个小例子: create proc query_book as select * from book go --调用存储过程 exec query_book 请大家来了解一下存储过程的语法。 Create PROC [ EDURE ] procedure_name [ ; number ] [ { @parameter data_type } [ VARYING ] [ = default ] [ OUTPUT ] ] [ ,...n ] [ WITH { RECOMPILE | ENCRYPTION | RECOMPILE , ENCRYPTION } ] [ FOR REPLICATION ] AS sql_statement [ ...n ] 一、参数简介 1、procedure_name 新存储过程的名称。过程名必须符合标识符规则,且对于数据库及其所有者必须唯一。 要创建局部临时过程,可以在 procedure_name 前面加一个编号 符 (#procedure_name),要创建全局临时过程,可以在 procedure_name 前面加两

个编号符 (##procedure_name)。完整的名称(包括 # 或 ##)不能超过 128 个字符。指定过程所有者的名称是可选的。 2、;number 是可选的整数,用来对同名的过程分组,以便用一条 Drop PROCEDURE 语句即可将同组的过程一起除去。例如,名为 orders 的应用程序使用的过程可以命名为 orderproc;1、orderproc;2 等。Drop PROCEDURE orderproc 语句将除去整个组。如果名称中包含定界标识符,则数字不应包含在标识符中,只应 在 procedure_name 前后使用适当的定界符。 3、@parameter 过程中的参数。在 Create PROCEDURE 语句中可以声明一个或多个参数。用户必须在执行过程时提供每个所声明参数的值(除非定义了该参数的默认值)。存储过程最多可以有 2100 个参数。 使用@符号作为第一个字符来指定参数名称。参数名称必须符合标识符的规则。每个过程的参数仅用于该过程本身;相同的参数名称可以用在其它过程中。默认情况下,参数只能代替常量,而不能用于代替表名、列名或其它数据库对象的名称。 4、data_type 参数的数据类型。所有数据类型(包括 text、ntext 和 image)均可以用作存储过程的参数。不过,cursor 数据类型只能用于 OUTPUT 参数。如果指定的数据类型为 cursor,也必须同时指定 VARYING 和 OUTPUT 关键字。 说明:对于可以是cursor 数据类型的输出参数,没有最大数目的限制。 5、VARYING 指定作为输出参数支持的结果集(由存储过程动态构造,内容可以变化)。仅适用于游标参数。 6、default 参数的默认值。如果定义了默认值,不必指定该参数的值即可执行过程。默认值必须是常量或 NULL。如果过程将对该参数使用 LIKE 关键字,那么默认值中可以包含通配符(%、_、[] 和 [^])。 7、OUTPUT

SQLSERVER2000使用手册范本

Microsoft SQL SERVER 2000使用手册 在网络环境下进行数据库系统的应用开发,需要选择具体的DBMS。本章首先介绍当前流行的关系数据库系统Microsoft SQL Server的基本知识,接着以Microsoft SQL Server 2000为背景,介绍数据库系统设计的方法和SQL Server的高级应用技术。 1 SQL Server简介 Microsoft SQL Server是高性能、客户/服务器的关系型数据库管理系统RDBMS,能够支持大吞吐量的事务处理,也能在Microsoft Windows 2000 Server网络环境下管理数据的存取以及开发决策支持应用程序。由于Micriosoft SQL Server是开放式的系统,其他系统可以与它进行完好的交互操作。 1.1 SQL Server 2000的特点 (1)对操作系统的要求低 SQL Server 2000除了继续支持Windows 2000 Server外,还新增了SQL Server 2000桌面版(Desktop Edition),此版本可以安装在Windows 95/98/2000专业版上,用来建立数据库,这使得SQL Server 2000变得非常通用,可以在任何大小的计算机上运行,包括膝上机、台式机和高档服务器。 (2)管理自动化 许多关键性的工作、数据库调整和最佳化处理等都由系统自动完成,减少了人为手工调整。例如,系统会动态调整存需求,自动缩减库和增加数据库所占文件的空间大小,自动更新统计数据等等。 (3)新的Enterprise Manager 它以MMC(Microsoft Management Console)为基础加以设计,其界面和其他微软服务器产品一致,看上去很像Windows的资源管理器。 (4)简化了SQL Server 2000数据库与Windows文件系统之间的关系,具有更好的可伸缩性在SQL Server 2000中,数据库驻留在操作系统文件上,而不再位于SQL Server的逻辑设备中,取消了以前必须先建立设备(Device),再在设备上建立数据库的观念,现在仅使用CREATE DATABASE 语句即可创建数据库及其所有文件,从而简化了数据库设计和管理的工作。SQL Server 2000允许数据库自动扩展,不再需要管理员发出额外的ALTER语句命令。 (6)提供数据库挖掘功能 在SQL Server 2000中加入的OLAP(On-Line Analytical Processing)服务,可以帮助公司建立决策分析的应用。 1.2 SQL Server 2000环境介绍 1)系统目录用途介绍 若使用默认值,安装程序会把大部分SQL Server 2000系统文件存放在启动盘的MSSQL目录下,并且在此目录下将创建多个子目录,用于存放不同的目的文件,列举如下: \BACKUP 存放备份文件 \Binn 存放客户端和服务器端可执行文件与DLL文件 \Data 存放数据库文件,包括系统数据库、实例数据库和用户数据库 \FTDATA 存放全文索引目录文件 \Install 存放有关安装方面的信息文件 \JOBS 存放工作文件

SqlServer 使用存储过程实现插入或更新语句

SqlServer 使用存储过程实现插入或更新语句 存储过程的功能非常强大,在某种程度上甚至可以替代业务逻辑层, 接下来就一个小例子来说明,用存储过程插入或更新语句。 1、数据库表结构 2、创建存储过程 1Create proc[dbo].[sp_Insert_Student] 2@No char(10), 3@Name varchar(20), 4@Sex char(2), 5@Age int, 6@rtn int output 7as 8declare 9@tmpName varchar(20), 10@tmpSex char(2), 11@tmpAge int 12 13if exists(select*from Student where No=@No) 14begin 15select@tmpName=Name,@tmpSex=Sex,@tmpAge=Age from Student where No=@No 16if ((@tmpName=@Name) and (@tmpSex=@Sex) and (@tmpAge=@Age)) 17begin 18set@rtn=0 19end 20else 21begin 22update Student set Name=@Name,Sex=@Sex,Age=@Age

where No=@No 23set@rtn=2 24end 25end 26else 27begin 28insert into Student values(@No,@Name,@Sex,@Age) 29set@rtn=1 30end 3、调用存储过程 1declare@rtn int 2exec sp_Insert_Student '1101','张三','男',23,@rtn output 3 4if@rtn=0 5print'已经存在相同的。' 6else if@rtn=1 7print'插入成功。' 8else 9print'更新成功'

SQL Server 2000数据库备份方案

SQL Server 2000数据库备份方案 sql server数据库备份方案 2008-08-05 13:15 SQL Server 数据库备份方案 为了保证SQL Server 数据的安全,数据库管理员应定期备份数据库,在不同情况下应采用不同备份数据库备份策略,一方面维持数据的安全性,另一方面也可保持SQL Server 能顺畅运行。尽最大的努力减少由于数据的损坏对客户造成的损失。 概念 1) 备份工作规划 计算机软硬件的稳定性还未达到非常稳定的状态,计算机中的数据仍有损失或毁坏的情况发生。存在于计算机内的数据不安全,即使采用容错设备,也无法保证数据库100%安全。计算机硬件的费用可能很高,但计算机数据更珍贵,做好数据备份,可保证在各种意外发生情况时,仍能保持有数据库的完整性。管理员必须花时间来备份数据库,但SQL SERVER也提供不少自动化功能。 2)备份方式 数据库——完全 就是备份整个数据库的内容。若将整个数据库的内容都备份下来,需很多的存储空间来存放备份数据,但其好处是在还原数据库时,也只要将整个数据库从一份数据库备份还原到SQL SERVER 中就可以了。它是其他备份的基础,在做其他备份之前,必须得做此种方式的备份。 数据库——差异(Differential) 只备份从上一次执行“完全”数据库备份后有改动的数据,因此所需要的备份时间和备份空间都比“完全”方式少,所以此方式最适合作为经常性的备份方式。 事务日志(Transaction Log) 只备份事务记录文件的内容,由于事务日志文件只会记录我们在前一次数据库备份或事务日志记录备份之后,对数据库所做的变动过程,也就是只记录某一段时间的数据库变动情况,因此在做事务记录备份之前,必须做一次“完全”的数据库备份 文件和文件组: 如果数据库的内容分散存储于多个文件或文件组,而且数据库已非常大,大到进行一次完整的数据库备份会有时间和存储空间上的问题。这时就可以使用此方式来备份数据库的部分文件或文件组。由于每次只备份部分的文件或文件组,因此需做数次不同的备份才能完成整个数据库的备份。才用此方式备份也有个好处,就是当毁坏的数据只是数据库中的某个文件或文件组时,也只要还原坏的文件或文件组备份就可以了。 3)备份方案制订原则 规划数据库的备份策略,需要考虑备份的各项变量,必须同时考虑到还原作业的进行。在做备份时,可考虑以下几点。 (1) 有多少时间以及在那些时段可进行备份 (2) 数据库变动的频率如何 (3) 数据库大小 (4) 当数据库出问题时,用户愿意等待多久让数据库还原完毕 (5) 应采用何种备份方式,做怎样的搭配 (6) 要使用哪种存储介质

(完整版)SQLServer存储过程的基本概念以及语法汇总

SQL Server存储过程的基本概念以及语法【转】 存储过程的概念 SQL Server提供了一种方法,它可以将一些固定的操作集中起来由SQL Server 数据库服务器来完成,以实现某个任务,这种方法就是存储过程。 存储过程是SQL语句和可选控制流语句的预编译集合,存储在数据库中,可由应用程序通过一个调用执行,而且允许用户声明变量、有条件执行以及其他强大的编程功能。 在SQL Server中存储过程分为两类:即系统提供的存储过程和用户自定义的存储过程。 可以出于任何使用SQL语句的目的来使用存储过程,它具有以下优点: 可以在单个存储过程中执行一系列SQL语句。 可以从自己的存储过程内引用其他存储过程,这可以简化一系列复杂语句。 存储过程在创建时即在服务器上进行编译,所以执行起来比单个SQL语句快,而且减少网络通信的负担。 安全性更高。 创建存储过程 在SQL Server中,可以使用三种方法创建存储过程: ①使用创建存储过程向导创建存储过程。 ②利用SQL Server 企业管理器创建存储过程。 ③使用Transact-SQL语句中的CREATE PROCEDURE命令创建存储过程。

下面介绍使用Transact-SQL语句中的CREATE PROCEDURE命令创建存储过程 创建存储过程前,应该考虑下列几个事项: ①不能将 CREATE PROCEDURE 语句与其它SQL语句组合到单个批处理中。 ②存储过程可以嵌套使用,嵌套的最大深度不能超过32层。 ③创建存储过程的权限默认属于数据库所有者,该所有者可将此权限授予其他用户。 ④存储过程是数据库对象,其名称必须遵守标识符规则。 ⑤只能在当前数据库中创建存储过程。 ⑥一个存储过程的最大尺寸为128M。 使用CREATE PROCEDURE创建存储过程的语法形式如下: QUOTE: CREATE PROC[EDURE]procedure_name[;number][;number] [{@parameter data_type}[VARYING][=default][OUTPUT]][,...n] WITH {RECOMPILE|ENCRYPTION|RECOMPILE,ENCRYPTION}] [FOR REPLICATION] AS sql_statement [ ...n ] 用CREATE PROCEDURE创建存储过程的语法参数的意义如下:

相关主题
文本预览
相关文档 最新文档