易截截图软件、单文件、免安装、纯绿色、仅160KB

SQL Server 2005存储过程开发的一点经验

1、  存储过程
1)  尽量将代码段放到TRY…CATCH…。
但凡使用C#写过代码的人,都知道C#中TRY…CATCH…的运行和出错跳转逻辑,而SQL Server2005中,其运行和出错跳转逻辑与在C#中是一致的。TRY…CATCH…是SQL Server2005中新增的,功能强大,且很好用。
2) 定义变量时,可以使用前缀的方式标识变量的类型。在SQL Server中开发基本和在记事本中开发差不了多少,没有在Visual Studio的IDE中那么舒服,还有智能感知提示,所以变量要尽量简单清楚。如要定义一个bit型和一个int型的变量,可以按照以下的方式添加前缀。DECLARE @b_NewTran bit; DECLARE @n_ErrorLogID int;
3)  out型的参数一上来就应该初始化。
4)  当然,注释是必不可少的,而且越详细越好。
5)  尽量避免使用游标。据说游标的效率较差。在定义游标时,要检查这个游标(如ORDERLINE_CURSOR)是否已经存在,可以使用如下代码。
 IF CURSOR_STATUS('global',N'ORDERLINE_CURSOR')<>-3  
    BEGIN
       DEALLOCATE ORDERLINE_CURSOR
    END
    如果一个游标已经存在,则应先将其释放。然后再定义。
    DECLARE ORDERLINE_CURSOR CURSOR FOR...
 游标用完后,应及时关闭,并释放。
     CLOSE ORDERLINE_CURSOR
     DEALLOCATE ORDERLINE_CURSOR 
 游标可以作为参数传递,如SP1调用SP2,并从SP2中返回一个游标类型的参数。在SP2中的参数应定义  为 @xxx_CURSORCURSOR VARYING OUTPUT,SP1调用SP2时,先定义一个CURSOR类型的变量DECLARE @xxx_CURSOR CURSOR,然后调用SP2 SP2 @xxx_CURSOR OUTPUT 
6) EXEC与SP_EXECUTESQL的用法。他们都可以用于执行一个动态SQL语句。但是对于动态SQL语句中包含了返回值的情况,只有用SP_EXECUTESQL了。比如执行一个动态条件的记录行数查询,先构造SQL语句:SET @c_Sql = 'SELECT @n_RowsCount =COUNT(1) from '+ @c_TableName。其中@n_RowsCount是一个变量,我希望通过它取得


相关文档:

初学PL/SQL 游标

1,显示游标的操作
  
(1) 定义游标
      根据查询的数据情况,在PL/SQL块的声明部分定义游标,语法为:
         cursor cursor_name is select_statement;
注意:
     游标必须在PL/SQL块的声明部分进行定义; ......

一个项目涉及到的50个Sql语句(整理版)

/*
标题:一个项目涉及到的50个Sql语句(整理版)
作者:爱新觉罗.毓华(十八年风雨,守得冰山雪莲花开)
时间:2010-05-10
地点:重庆航天职业学院
说明:以下五十个语句都按照测试数据进行过测试,最好每次只单独运行一个语句。
问题及描述:
--1.学生表
Student(S#,Sname,Sage,Ssex) --S# 学生编号,Sname 学生姓名,S ......

SQL Server 压缩日志空间

使用了一段时间后,SQL Server 的 LDF文件体积巨大.
如何处理嘞, 对于 SQL Server 2005 及之前的版本,可以使用如下 SQL:
declare @name varchar(50)
set @name='dbname
'
backup
log @name
with truncate_only
dbcc shrinkdatabase (@name,20)
可是在 SQL Server 2008 开始,执行上面的语句会报错:
'truncate ......

oracle常用sql语句

修改列属性
alter table tablename modify(name ,varchar2(10)) 列宽度不得小于修改前的宽度
日志管理
视图 v$logfile
alter database add logfile 'd:\orcl01.log' size 10m;//添加组
alter database add logfile member 'd:\orcl02.log' to group 4;//向4组中添加成员
alter database drop logfile member 'd: ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号