判断插入值是否重复:
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(@strwhere, len(@strwhere)-4)
END
--按用户名排序
set @strsql = @strsql + ' ORDER BY Type,UserID'
exec (@strsql)
GO
分享到:
相关推荐
1. 存储过程只在创造时进行编译即可,以后每次执行存储过程都不需再重新编译,而我们通常使用的SQL语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度。 2. 经常会遇到复杂的业务逻辑和对数据库的...
SQL 2005 中触发器、事务,存储过程、视图_T-SQL语句的详细讲解课程学习PPT(含有实例和作业题)
数据库中的if和else语句 14 SQL中的while语句 14 Case-End多分支语句 14 子查询 15 视图(虚拟表)和索引 16 视图 16 索引 16 事务管理 17 数据库的安全性 18 建立权限 19 存储过程(procedure) 20 无参数...
《SQL Server 2008查询性能优化》通过大量实例,详细介绍了SQL Server数据库系统优化的各种方法和技巧。内容涵盖了数据库应用系统中各种性能瓶颈的表现形式及其发生的根源和解决方法,从硬件瓶颈到查询、索引设计...
以SQL Server为工具,讲解SQL语言的应用,提供了近500个曲型应用,读者可以随查随用,深入讲解SQL语言的各种查询语句,详细介绍数据库设计及管理,详细讲解存储过程、解发器和游标等知识,讲解了SQL语言在高级语言中...
文档整理了SQL常用的增加删除修改查询语句。分别有基本语句,高级查询语句,函数查询语句,事务,存储过程等。
SELECT --从数据库表中检索数据行和列 INSERT --向数据库表添加新数据行 DELETE --从数据库表中删除数据行 UPDATE --更新数据库表中的数据 --数据定义 CREATE TABLE --创建一个数据库表 DROP TABLE --...
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 数据库管理常用的SQL和T-SQL语句 SQL SERVER 与ACCESS、EXCEL的数据转换 sql server中,日期比较、日期查询的常用语句 SQLSERVER 索引 填充因子 Server 中一个非常强大的日期格式化函数 根据表中数据...
因为这样可以避免 top的字段如果是逻辑索引的,查询的结果后实际表中的不一致(逻辑索引中的数据有可能和数据表中的不一致,而查询时如果处在索引则首先查询索引) 14、说明:前10条记录 select top 10 * form table...
:为提高基于SQL Server 数据库应用程序的执行效率,分析了SQL Server 数据库系统自身的查询优化处理技术,总结 出多种基于SQL Server 数据库的应用程序性能优化方法:选择性能优越的服务器;优化数据库设计;使用...
二个表的级联查询,还有删除表中重复的数据,查询表中的数据,对表进行分组使用联合查询的方式进行连接,对表中的数据进行详细的操作,操作数据库中的数据,存储过程,视图及事务的写法等等sql语句大全
《SQL Server 2008查询性能优化》通过大量实例,详细介绍了SQL Server数据库系统优化的各种方法和技巧。内容涵盖了数据库应用系统中各种性能瓶颈的表现形式及其发生的根源和解决方法,从硬件瓶颈到查询、索引设计...
详细讲解你:程序设计、视图、索引、游标、事务、触发器、锁、存储过程、XML、权限管理…… 并加以注释!
分析一个或多个数据库的工作负荷和物理实现,工作负荷可以是优化的sql语句或者sqlserver profiler的跟踪文件和数据表。我们可以在运行引擎优化顾问前运用sqlserver profiler记录一些事件,然后将跟踪结果存储为...
详细说明SQL语句应用及操作。--语 句 功 能 --数据操作 SELECT --从数据库表中检索数据行和列 INSERT --向数据库表添加新数据行 DELETE --从数据库表中删除数据行 UPDATE --更新数据库表中的数据 -数据定义 CREATE...
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操作的可...
oracle的sql优化方法 1.全表扫描和索引扫描 大数据量表尽量要避免全表扫描,全部扫描会按顺序每条记录扫描,对于>100万数据表影响很大。 Oracle中通过RowID访问数据是最快的方式 对字段进行函数转换,或者前...
本文档详细的讲解了SQL的操作 目录包括 建库建表 数据查询 函数 变量 循环语句 存储过程 子查询 事务 触发器