`
Felix韩
  • 浏览: 17132 次
  • 性别: 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语句慢的原因

    其次,存储过程可以将复杂的业务逻辑和对数据库的操作封装起来,并与数据库提供的事务处理结合使用,提高数据的使用效率,减少程序的执行时间。在代码上看,SQL 语句和程序代码语句的分离,可以提高程序代码的可读性...

    SQL存储过程优化参考

    在数据库管理中,SQL存储过程是预编译的SQL语句集合,用于执行特定任务,如...提供的"存储过程编写经验和优化措施.doc"和"优化SQL语句和存储过程.pdf"文档应该包含更详细的信息,可以帮助读者深入理解并应用这些概念。

    sql优化和存储过程

    综上所述,SQL优化和存储过程的运用是提升系统性能的关键,涉及应用设计、查询优化、ODBC利用、存储过程的编写以及工具选择等多个方面。通过这些策略,可以显著改善数据库的响应速度,提高系统处理能力,从而满足...

    sql server 语句优化

    SQL Server查询优化是一个涉及多方面因素的综合过程,需要结合具体的应用场景和技术特点来进行。通过对SQL Server查询优化基本原则的理解以及具体方法的应用,可以有效提高查询性能,从而提升整个系统的运行效率和...

    Effective MySQL之SQL语句最优化.pdf

    10. SQL语句优化的技术手段:技术手段包括但不限于使用子查询优化、使用JOIN代替子查询、避免SELECT *、使用更有效的查询方法(如IN代替OR)、利用数据库提供的存储过程和函数减少网络往返次数等。 11. 经验与实践...

    学习sql存储过程的心得

    学习SQL存储过程是提升数据库管理和应用开发效率的关键步骤,它可以帮助我们更好地组织和优化数据操作。 在SQL存储过程中,有以下几个重要的知识点: 1. **定义与创建**:存储过程可以通过`CREATE PROCEDURE`语句...

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

    在“SQL 2005 中触发器、事务,存储过程、视图_T-SQL语句”的课程中,你可能会学习到如何创建和管理这些对象,包括编写触发器的语法,理解事务管理的基本原则,如何定义和执行存储过程,以及如何创建和使用视图。...

    SQL Server存储过程编写和优化措施

    以下是对“SQL Server存储过程编写和优化措施”这一主题的深入解析,旨在帮助数据库管理员及开发人员掌握有效的编写与优化策略。 ### 存储过程编写原则 #### 1. 明确依赖关系 - **TableView**:使用前需明确其依赖...

    SQL存储过程.ppt

    SQL存储过程是一种预先编译并存储在数据库服务器中的SQL语句集合,它可以被多次调用,用于执行特定的数据操作任务。存储过程在IT领域中扮演着重要角色,特别是在数据库管理和应用程序开发中。本章主要探讨了存储过程...

    学生管理系统(三种方法控制台实现:ArrayList、SQL语句、存储过程)

    在这个项目中,我们将探讨如何使用三种不同的方法在控制台上实现这样的系统:ArrayList、SQL语句和存储过程。每种方法都有其特点和适用场景,理解它们有助于提升对数据管理和程序设计的理解。 1. **ArrayList实现**...

    sql语句优化原则

    11. **优化T-SQL编写**:编写高效的SQL语句,减少不必要的JOIN操作,避免子查询和嵌套循环,合理使用临时表和存储过程,以及使用合适的数据类型,都是提高SQL性能的重要手段。 综上所述,SQL语句优化是一个涉及多...

    SQL语句执行过程详解

    SQL语句执行过程是一个涉及到客户端与服务器端交互、多个阶段的复杂过程,包含了对SQL语句的处理、解析、优化以及最终的执行。这个过程对于数据库管理员来说,需要对数据库内部结构有深入的了解,才能够完全掌握。 ...

    《Effective MySQL之SQL语句最优化》手册

    在数据库管理领域,SQL优化是提升系统性能的关键环节,尤其是在处理大数据量时,优化SQL语句能够显著减少查询时间,改善用户体验,同时减轻服务器负担。 首先,SQL优化的基础在于理解SQL语句的工作原理。SQL是...

    sql存储过程帮助文档

    综上所述,“sql存储过程帮助文档”应该覆盖了这些基本概念和更深入的技巧,包括但不限于游标、异常处理、动态SQL、存储过程的优化等。学习并熟练掌握存储过程的使用,对于提升数据库管理和应用程序的效率至关重要。

    SQL语句大全(存储过程、函数、基本语法)

    在这个SQLServer.chm文件中,你可以期待找到关于SQL Server特定的语法、函数和存储过程的详细信息,可能包括T-SQL(Transact-SQL)的扩展功能,如游标、事务管理和触发器。T-SQL是SQL Server的扩展,提供了更强大的...

    通过分析SQL语句的执行计划优化SQL.doc

    本文主要探讨了如何通过分析SQL语句的执行计划来优化查询性能,涉及到共享SQL语句、ROWID、Recursive SQL、Row Source、Driving Table和Probed Table等相关概念。 首先,SQL语句的共享是ORACLE数据库提高性能的一种...

    SQL查询语句的练习

    存储过程是一组预编译的SQL语句,可以封装在一起并多次调用,提高代码复用性和安全性。触发器则在特定的数据库事件发生时自动执行,如INSERT、UPDATE或DELETE操作。 8. **事务管理** SQL支持事务,确保数据的一致...

    sql存储过程教程

    ### SQL存储过程教程知识点详述 #### 一、SQL存储过程概述 - **定义**: 存储过程(Stored Procedure)是一组预编译的SQL语句集合,它们被存储在数据库中,用户可以通过指定存储过程的名字及其参数来执行。 - **...

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

    本资源“SQL语句大全”涵盖了多个关键概念,包括程序设计、视图、索引、游标、事务、触发器、锁、存储过程、XML以及权限管理。以下是对这些主题的详细阐述: 1. **程序设计**:T-SQL(Transact-SQL)是SQL Server中...

Global site tag (gtag.js) - Google Analytics