自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

存儲過程優(yōu)化的SQL語句寫法

數(shù)據(jù)庫 SQL Server
如果寫一個優(yōu)化存儲過程和事務的SQL語句,應該如何寫呢?下文就將為您介紹詳細的寫法,供您參考。

如果需要讓SQL數(shù)據(jù)庫中的事務和存儲過程優(yōu)化,SQL語句應該如何寫呢?下面就將為您介紹存儲過程優(yōu)化的SQL語句寫法,希望對您學習SQL語句的使用有所幫助。

判斷插入值是否重復:
事務和存儲過程優(yōu)化
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

條件查詢語句:
條件查詢直接放在SQL中判斷
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
 

 

【編輯推薦】

SQL語句中CASE WHEN的使用實例

教您不帶參數(shù)的SQL語句執(zhí)行的方法

巧用GO將多次重復執(zhí)行SQL語句

父子分類關(guān)系查詢使用的SQL語句介紹

使用SQL語句給表的欄位添加注釋

責任編輯:段燃 來源: 互聯(lián)網(wǎng)
相關(guān)推薦

2010-09-07 11:41:24

SQL語句

2011-05-20 15:59:06

Oracle存儲Sql語句

2009-11-05 18:07:33

Oracle導出sql

2010-09-07 16:46:56

SQL語句nsert

2010-09-10 14:09:23

2011-03-31 10:38:28

SQL Server編寫優(yōu)化

2010-09-08 16:38:13

SQL循環(huán)語句

2010-07-06 14:06:52

SQL Server存

2010-09-25 11:32:20

SQL主鍵約束

2010-11-09 16:20:46

SQL Server死

2010-07-01 13:42:58

SQL Server存

2010-09-17 13:54:02

SQL語句

2010-09-28 15:07:14

SQL語句

2010-04-16 12:58:48

Oracle sql

2017-05-16 11:20:51

SQL語句解析

2010-09-02 11:24:45

SQL刪除

2010-09-06 11:24:32

SQL Server語句

2010-09-28 15:19:13

SQL語句

2010-09-07 15:04:21

SQL語句存儲過程

2010-09-03 15:08:03

SQLselect語句
點贊
收藏

51CTO技術(shù)棧公眾號