`
Felix韩
  • 浏览: 16752 次
  • 性别: Icon_minigender_1
  • 来自: 江西
最近访客 更多访客>>
社区版块
存档分类
最新评论

SQL存储过程事务和优化方法(包括查询方式语句结合)

阅读更多

判断插入值是否重复:

CREATE PROCEDURE  IR_rb_User_UpdateUser
(
    
@UserID        int,
    
@Name    nvarchar(50),
    
@Email           nvarchar(100),
    
@Password    nvarchar(20),
    
@RoleID        int,
    
@iSuccess    int output
)
AS

set @iSuccess = -1    --判断是否成功有错误应为插入重复键

IF EXISTS (SELECT Email  FROM rb_Users WHERE Email = @Email and UserID<>@UserID)
BEGIN
  
set @iSuccess = -2
  
return
END

BEGIN TRAN

    
UPDATE    rb_Users  SET    Name   = @Name,    Email    = @Email,   

                   Password = @Password  WHERE    UserID   = @UserID

    
IF @@ERROR <> 0
    
BEGIN
        
ROLLBACK TRAN
        
return
    
END
    
set @iSuccess = -3

    
update rb_UserRoles set RoleID=@RoleID  where UserID=@UserID

    
IF @@ERROR <> 0
    
BEGIN
        
ROLLBACK TRAN
        
return
    
END

COMMIT TRAN

set @iSuccess = 1
GO


条件查询语句:

CREATE PROCEDURE IR_SysAuthorization_GetAllSysAuthorization
(
    
@Type int,
    
@UserID varchar(20)
)
 
AS

declare     @strsql    varchar(1500)        --临时sql语句
declare     @strwhere    varchar(1000)        --临时sql的条件语句

set @strsql = ''
set @strsql = @strsql + 'select UserID,Role,(select typename from SysAuthorizationType where type=t.type) as typeTmp, '
set @strsql = @strsql + '(CASE WHEN State = 1 THEN ' + '''有效''' + ' ELSE ' + '''无效''' + ' END) AS StateTmp '
set @strsql = @strsql + 'FROM SysAuthorization t '

set @strwhere = ''


IF  @UserID <> '' 
BEGIN
    
set @strwhere = @strwhere + ' and (UserID LIKE ' + '''' + '%' + @UserID + '%' + '''' + ')'
END

IF  @Type >0
BEGIN
    
set @strwhere = @strwhere + ' and Type =  ' + CAST(@Type AS varchar(12))
END

if @strwhere <>''
BEGIN
    
set @strsql = @strsql + ' where ' + right(@strwherelen(@strwhere)-4)
END

--按用户名排序
set  @strsql = @strsql + ' ORDER BY Type,UserID'

exec (@strsql)
GO
分享到:
评论

相关推荐

    SQL Server中存储过程比直接运行SQL语句慢的原因

    1. 存储过程只在创造时进行编译即可,以后每次执行存储过程都不需再重新编译,而我们通常使用的SQL语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度。 2. 经常会遇到复杂的业务逻辑和对数据库的...

    触发器、事务,存储过程、视图_T-SQL语句

    SQL 2005 中触发器、事务,存储过程、视图_T-SQL语句的详细讲解课程学习PPT(含有实例和作业题)

    SQL server 语句大全

    数据库中的if和else语句 14 SQL中的while语句 14 Case-End多分支语句 14 子查询 15 视图(虚拟表)和索引 16 视图 16 索引 16 事务管理 17 数据库的安全性 18 建立权限 19 存储过程(procedure) 20 无参数...

    SQLServer2008查询性能优化 2/2

    《SQL Server 2008查询性能优化》通过大量实例,详细介绍了SQL Server数据库系统优化的各种方法和技巧。内容涵盖了数据库应用系统中各种性能瓶颈的表现形式及其发生的根源和解决方法,从硬件瓶颈到查询、索引设计...

    精通sql结构化查询语句

    以SQL Server为工具,讲解SQL语言的应用,提供了近500个曲型应用,读者可以随查随用,深入讲解SQL语言的各种查询语句,详细介绍数据库设计及管理,详细讲解存储过程、解发器和游标等知识,讲解了SQL语言在高级语言中...

    SQL常用增删改查语句

    文档整理了SQL常用的增加删除修改查询语句。分别有基本语句,高级查询语句,函数查询语句,事务,存储过程等。

    学习SQL语句之SQL语句大全

     SELECT --从数据库表中检索数据行和列  INSERT --向数据库表添加新数据行  DELETE --从数据库表中删除数据行  UPDATE --更新数据库表中的数据  --数据定义  CREATE TABLE --创建一个数据库表  DROP TABLE --...

    SQLServer2000高级编程技术-已添加书签,想学存储过程、SQL编程务必要看,分析非常透彻

    10.1.3 使用sp_executesql存储过程 10.2 使用时间戳的乐观锁 10.2.1 时间戳 10.2.2 TSEQUAL函数 10.2.3 时间戳转换 10.3 全文搜索和索引 10.4 嵌套的存储过程 10.4.1 使用临时表来传递一个记录集给一个嵌套的存储...

    常用经典sql语句(sqlserver版)

    SQL Server 数据库管理常用的SQL和T-SQL语句 SQL SERVER 与ACCESS、EXCEL的数据转换 sql server中,日期比较、日期查询的常用语句 SQLSERVER 索引 填充因子 Server 中一个非常强大的日期格式化函数 根据表中数据...

    经典SQL语句大全

    因为这样可以避免 top的字段如果是逻辑索引的,查询的结果后实际表中的不一致(逻辑索引中的数据有可能和数据表中的不一致,而查询时如果处在索引则首先查询索引) 14、说明:前10条记录 select top 10 * form table...

    SQLServer数据库应用程序性能优化方法

    :为提高基于SQL Server 数据库应用程序的执行效率,分析了SQL Server 数据库系统自身的查询优化处理技术,总结 出多种基于SQL Server 数据库的应用程序性能优化方法:选择性能优越的服务器;优化数据库设计;使用...

    sql语句大全及sql语句的一些查询方式

    二个表的级联查询,还有删除表中重复的数据,查询表中的数据,对表进行分组使用联合查询的方式进行连接,对表中的数据进行详细的操作,操作数据库中的数据,存储过程,视图及事务的写法等等sql语句大全

    SQLServer2008查询性能优化 1/2

    《SQL Server 2008查询性能优化》通过大量实例,详细介绍了SQL Server数据库系统优化的各种方法和技巧。内容涵盖了数据库应用系统中各种性能瓶颈的表现形式及其发生的根源和解决方法,从硬件瓶颈到查询、索引设计...

    SQL语句大全(程序设计、视图、索引、游标、事务、触发器、锁、存储过程、XML、权限管理……)

    详细讲解你:程序设计、视图、索引、游标、事务、触发器、锁、存储过程、XML、权限管理…… 并加以注释!

    SQLServer安全及性能优化

     分析一个或多个数据库的工作负荷和物理实现,工作负荷可以是优化的sql语句或者sqlserver profiler的跟踪文件和数据表。我们可以在运行引擎优化顾问前运用sqlserver profiler记录一些事件,然后将跟踪结果存储为...

    SQL语句全集及操作大全

    详细说明SQL语句应用及操作。--语 句 功 能 --数据操作 SELECT --从数据库表中检索数据行和列 INSERT --向数据库表添加新数据行 DELETE --从数据库表中删除数据行 UPDATE --更新数据库表中的数据 -数据定义 CREATE...

    SQLServer2000高级编程技术(part02)-想学存储过程 SQL编程 务必要看

    10.1.3 使用sp_executesql存储过程 10.2 使用时间戳的乐观锁 10.2.1 时间戳 10.2.2 TSEQUAL函数 10.2.3 时间戳转换 10.3 全文搜索和索引 10.4 嵌套的存储过程 10.4.1 使用临时表来传递一个记录集给一个嵌套的存储...

    SQL+Server的事务、游标、存储过程及触发器.doc

    主要内容包括事务的概念及函数、游标的概念及语句、存储过程概述及其函数、触发器概述及其函数。关键字:事物、游标、存储过程、触发器引言:在关系数据库系统中,事务指的是组成为独立单元的一个或多个SQL操作的可...

    oracle的sql优化

    oracle的sql优化方法 1.全表扫描和索引扫描  大数据量表尽量要避免全表扫描,全部扫描会按顺序每条记录扫描,对于&gt;100万数据表影响很大。  Oracle中通过RowID访问数据是最快的方式  对字段进行函数转换,或者前...

    SQL基础代码(包含所有的语句)

    本文档详细的讲解了SQL的操作 目录包括 建库建表 数据查询 函数 变量 循环语句 存储过程 子查询 事务 触发器

Global site tag (gtag.js) - Google Analytics