SQL server 儲存過程模板

2021-08-21 08:19:01 字數 4665 閱讀 7620

儲存過程直接套用模板、

流程控制、

執行日誌、

根據實際情況選擇、

create procedure [dbo].[procproctemplete]

( @a int, -- 入參

@b int output --出參)as

begin

set nocount on;

--變數定義

--計算過程執行時長

declare @starttime datetime

declare @totaltime int

--流程控制(成功失敗)

declare @result int

--執行影響行數

declare @row int

--錯誤日誌

declare @errormessage varchar(1000)

--變數賦值

set @starttime = getdate()

set @result = 0

--建立臨時表

create table #tmp_aa

(id int,

value varchar(50))

--處理臨時表資料

insert into #tmp_aa

( id, value )

values ( 0, -- id - int

'aaa' -- value - varchar(50)

)--開啟事務

begin tran

begin try

--計算邏輯

if exists(select 1 from #tmp_aa

where id = @a)

begin

set @b = 1

set @result = 0

set @row = @@rowcount

end

else

begin

set @result = 1

end--計算總時長

set @totaltime=datediff(second,@starttime,getdate());

end try

begin catch

if @@trancount > 0

begin

rollback tran

select @errormessage='操作發生異常:'+cast(error_number() as varchar)+','+error_message(),@result = -1

endend catch

if @@trancount > 0 and @result = 0

begin

commit tran;

endif @@trancount > 0 and @result <> 0

begin

rollback tran;

end--select @b as b;

--刪除臨時表

if exists(select * from tempdb..sysobjects where id=object_id('tempdb..#tmp_aa'))

begin

drop table #tmp_aa

end--記錄日誌

insert into tb_syslogs(logger,logtime,logip,logname,logtotaltime,levelcode,message,logsql)

select 'templete',getdate(),'::1','sa',@totaltime,'procproctemplete','','影響行數' + cast(@row as varchar(10)) + ',' + @errormessage;

end

儲存過程日誌表:tb_syslogs

create table [dbo].[tb_syslogs](

[id] [int] identity(1,1) not null,

[logger] [varchar](50) null,

[logtime] [datetime] not null constraint [df_tb_syslogs_logtime] default (getdate()),

[logip] [varchar](50) null,

[logname] [varchar](50) null,

[logtotaltime] [int] null,

[levelcode] [varchar](50) null,

[message] [varchar](max) null,

[logsql] [varchar](max) null,

constraint [pk_tb_syslogsid] primary key clustered

( [id] asc

)with (pad_index = off, statistics_norecompute = off, ignore_dup_key = off, allow_row_locks = on, allow_page_locks = on) on [primary]

) on [primary] textimage_on [primary]

goset ansi_padding off

goexec sys.sp_addextendedproperty @name=n'ms_description', @value=n'主鍵id' , @level0type=n'schema',@level0name=n'dbo', @level1type=n'table',@level1name=n'tb_syslogs', @level2type=n'column',@level2name=n'id'

goexec sys.sp_addextendedproperty @name=n'ms_description', @value=n'操作人' , @level0type=n'schema',@level0name=n'dbo', @level1type=n'table',@level1name=n'tb_syslogs', @level2type=n'column',@level2name=n'logger'

goexec sys.sp_addextendedproperty @name=n'ms_description', @value=n'操作時間' , @level0type=n'schema',@level0name=n'dbo', @level1type=n'table',@level1name=n'tb_syslogs', @level2type=n'column',@level2name=n'logtime'

goexec sys.sp_addextendedproperty @name=n'ms_description', @value=n'對應ip' , @level0type=n'schema',@level0name=n'dbo', @level1type=n'table',@level1name=n'tb_syslogs', @level2type=n'column',@level2name=n'logip'

goexec sys.sp_addextendedproperty @name=n'ms_description', @value=n'對應mssql登入名' , @level0type=n'schema',@level0name=n'dbo', @level1type=n'table',@level1name=n'tb_syslogs', @level2type=n'column',@level2name=n'logname'

goexec sys.sp_addextendedproperty @name=n'ms_description', @value=n'耗時' , @level0type=n'schema',@level0name=n'dbo', @level1type=n'table',@level1name=n'tb_syslogs', @level2type=n'column',@level2name=n'logtotaltime'

goexec sys.sp_addextendedproperty @name=n'ms_description', @value=n'等級' , @level0type=n'schema',@level0name=n'dbo', @level1type=n'table',@level1name=n'tb_syslogs', @level2type=n'column',@level2name=n'levelcode'

goexec sys.sp_addextendedproperty @name=n'ms_description', @value=n'日誌資訊' , @level0type=n'schema',@level0name=n'dbo', @level1type=n'table',@level1name=n'tb_syslogs', @level2type=n'column',@level2name=n'message'

goexec sys.sp_addextendedproperty @name=n'ms_description', @value=n'執行指令碼' , @level0type=n'schema',@level0name=n'dbo', @level1type=n'table',@level1name=n'tb_syslogs', @level2type=n'column',@level2name=n'logsql'

go

sql server儲存過程

建立表的語句 create table student sno int primary key,sname nvarchar 30 sgentle nvarchar 2 sage int,sbirth smalldatetime,sdept nvarchar 30 drop table studen...

SQLSERVER儲存過程

sqlserver儲存過程使用說明書 引言首先介紹一下什麼是儲存過程 儲存過程就是將常用的或很複雜的工作,預先用 sql語句寫好並用乙個指定的名稱儲存起來,並且這樣的語句是放在資料庫中的,還可以根據條件執行不同 sql語句,那麼以後要叫資料庫提供與已定義好的儲存過程的功能相同的服務時,只需呼叫 ex...

SQL Server 儲存過程

儲存過程概念 儲存過程優點 儲存過程的介面 儲存過程的解析 編譯過程 儲存過程安全性 檢視儲存過程 加密 解密儲存過程 儲存過程概念 儲存過程 stored procedure 是一組為了完成特定功能的sql語句集,經編譯後儲存在資料庫中。使用者通過指定儲存過程的名字並給出引數 帶參儲存過程 來執行...