日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
在SQL觸發(fā)器或存儲(chǔ)過(guò)程中獲取登錄用戶信息

SQL觸發(fā)器存儲(chǔ)過(guò)程中,可以獲取程序登錄的用戶。下面我們就開(kāi)始介紹,怎樣實(shí)現(xiàn)在SQL觸發(fā)器或存儲(chǔ)過(guò)程中獲取在程序登錄的用戶。在插入,更新或刪除的存儲(chǔ)過(guò)程,把登錄程序當(dāng)前用戶傳入進(jìn)去。在存儲(chǔ)過(guò)程中,再把相關(guān)信息存入局部(#)臨時(shí)表中,這樣子,在觸發(fā)器即可獲取了。

創(chuàng)新互聯(lián)公司是一家集網(wǎng)站建設(shè),寧陵企業(yè)網(wǎng)站建設(shè),寧陵品牌網(wǎng)站建設(shè),網(wǎng)站定制,寧陵網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷,網(wǎng)絡(luò)優(yōu)化,寧陵網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。

下面代碼示例,以一個(gè)[Member]表作例,可以參詳:

 
 
 
  1. Member  
  2.  
  3. CREATE TABLE Member  
  4.  
  5. (  
  6.  
  7. Member_nbr INT IDENTITY(1,1) PRIMARY EKY NOT NULL,  
  8.  
  9. [Name] NVARCHAR(30),  
  10.  
  11. Birthday DATETIME,  
  12.  
  13. Email NVARCHAR(100),  
  14.  
  15. [Address] NVARCHAR(100)  
  16.  
  17. )  
  18.  
  19. GO 

插入存儲(chǔ)過(guò)程:

 
 
 
  1. MemberSp_Insert  
  2.  
  3. CREATE PROCEDURE MemberSp_Insert  
  4.  
  5. (  
  6.  
  7. --Other parameter  
  8.  
  9. @Operater NVARCHAR(50) --帶到此參數(shù),可從程序的用戶傳至數(shù)據(jù)庫(kù)  
  10.  
  11. )  
  12.  
  13. AS  
  14.  
  15. BEGIN 

處理插入事務(wù):

 
 
 
  1. ---INSERT INTO [dbo].[Member] (xxx) VALUES(xxx) 

把相關(guān)信息存入臨時(shí)表,方便在觸發(fā)器時(shí)取到:

 
 
 
  1. IF OBJECT_ID('#AuditWho') IS NOT NULL  
  2.  
  3. DROP TABLE [#AuditWho]  
  4.  
  5. CREATE TABLE [#AuditWho] (PrimaryKey INT,Operater NVARCHAR(50))  
  6.  
  7. INSERT INTO [#AuditWho] VALUES(SCOPE_IDENTITY(),@Operater)  
  8.  
  9. END  
  10.  
  11. GO 

更新存儲(chǔ)過(guò)程:

 
 
 
  1. MemberSp_Update  
  2.  
  3. CREATE PROCEDURE MemberSp_Update  
  4.  
  5. (  
  6.  
  7. --Other parameter  
  8.  
  9. @Member_nbr INT,  
  10.  
  11. @Operater NVARCHAR(50) --帶到此參數(shù),可從程序的用戶傳至數(shù)據(jù)庫(kù)  
  12.  
  13. )  
  14.  
  15. AS  
  16.  
  17. BEGIN 

處理更新事務(wù):

 
 
 
  1. ---UPDATE [dbo].[Member] SET [xxx] = xxx, ... WHERE [Member_nbr] = @Member_nbr 

把相關(guān)信息存入臨時(shí)表,方便在觸發(fā)器時(shí)取到:

 
 
 
  1. IF OBJECT_ID('#AuditWho') IS NOT NULL  
  2.  
  3. DROP TABLE [#AuditWho]  
  4.  
  5. CREATE TABLE [#AuditWho] (PrimaryKey INT,Operater NVARCHAR(50))  
  6.  
  7. INSERT INTO [#AuditWho] VALUES(@Member_nbr,@Operater)  
  8.  
  9. END  
  10.  
  11. GO 

刪除存儲(chǔ)過(guò)程:

 
 
 
  1. MemberSp_Delete  
  2.  
  3. CREATE PROCEDURE MemberSp_Delete  
  4.  
  5. (  
  6.  
  7. @Member_nbr INT,  
  8.  
  9. @Operater NVARCHAR(50) --帶到此參數(shù),可從程序的用戶傳至數(shù)據(jù)庫(kù)  
  10.  
  11. )  
  12.  
  13. AS  
  14.  
  15. BEGIN 

處理刪除事務(wù):

 
 
 
  1. ---DELETE FROM [dbo].[Member] WHERE [Member_nbr] = @Member_nbr 

把相關(guān)信息存入臨時(shí)表,方便在觸發(fā)器時(shí)取到:

 
 
 
  1. IF OBJECT_ID('#AuditWho') IS NOT NULL  
  2.  
  3. DROP TABLE [#AuditWho]  
  4.  
  5. CREATE TABLE [#AuditWho] (PrimaryKey INT,Operater NVARCHAR(50))  
  6.  
  7. INSERT INTO [#AuditWho] VALUES(@Member_nbr,@Operater)  
  8.  
  9. END  
  10.  
  11. GO 

#p#

從上面的存儲(chǔ)過(guò)程,用戶相關(guān)的信息(應(yīng)用程序的用戶信息)已經(jīng)在存儲(chǔ)過(guò)程中存入臨時(shí)表中,接下來(lái),在觸發(fā)器,怎樣獲取呢??梢詤⒖枷旅娴挠|發(fā)器代碼:

插入觸發(fā)器:

 
 
 
  1. MemberTr_Insert  
  2.  
  3. CREATE TRIGGER [dbo].[MemberTr_Insert]   
  4.  
  5. ON [dbo].[Member]  
  6.  
  7. FOR INSERT  
  8.  
  9. AS  
  10.  
  11. BEGIN  
  12.  
  13. IF @@ROWCOUNT = 0 RETURN  
  14.  
  15. SET NOCOUNT ON 

事務(wù)處理:

 
 
 
  1. DECLARE @Operater NVARCHAR(50),@Member_nbr INT  
  2.  
  3. SELECT @Member_nbr = [Member_nbr] FROM inserted  
  4.  
  5. SELECT @Operater = [Operater] FROM [#AuditWho] WHERE [PrimaryKey] = @Member_nbr 

插入Audit 表中:

 
 
 
  1. INSERT INTO ....  
  2.  
  3. END  
  4.  
  5. GO 

更新觸發(fā)器:

 
 
 
  1. MemberTr_Update  
  2.  
  3. CREATE TRIGGER [dbo].[MemberTr_Update]   
  4.  
  5. ON [dbo].[Member]  
  6.  
  7. FOR UPDATE  
  8.  
  9. AS  
  10.  
  11. BEGIN  
  12.  
  13. IF @@ROWCOUNT = 0 RETURN  
  14.  
  15. SET NOCOUNT ON 

事務(wù)處理:

 
 
 
  1. DECLARE @Operater NVARCHAR(50),@Member_nbr INT  
  2.  
  3. SELECT @Member_nbr = [Member_nbr] FROM deleted  
  4.  
  5. SELECT @Operater = [Operater] FROM [#AuditWho] WHERE [PrimaryKey] = @Member_nbr 

插入Audit 表中:

 
 
 
  1. INSERT INTO ....  
  2.  
  3. END  
  4.  
  5. GO 

刪除觸發(fā)器:

 
 
 
  1. MemberTr_Delete  
  2.  
  3. CREATE TRIGGER [dbo].[MemberTr_Delete]   
  4.  
  5. ON [dbo].[Member]  
  6.  
  7. FOR DELETE  
  8.  
  9. AS  
  10.  
  11. BEGIN  
  12.  
  13. IF @@ROWCOUNT = 0 RETURN  
  14.  
  15. SET NOCOUNT ON 

事務(wù)處理:

 
 
 
  1. DECLARE @Operater NVARCHAR(50),@Member_nbr INT  
  2.  
  3. SELECT @Member_nbr = [Member_nbr] FROM deleted  
  4.  
  5. SELECT @Operater = [Operater] FROM [#AuditWho] WHERE [PrimaryKey] = @Member_nbr 

插入Audit 表中:

 
 
 
  1. INSERT INTO ....  
  2.  
  3. END  
  4.  
  5. GO 

按照以上的步驟操作就可以利用SQL觸發(fā)器或存儲(chǔ)過(guò)程來(lái)獲得程序登錄的用戶了。本文就介紹到這里,希望能對(duì)各位有所幫助。

【編輯推薦】

  1. 誤刪SQL Server日志文件后怎樣附加數(shù)據(jù)庫(kù)
  2. SQL Server 2005數(shù)據(jù)庫(kù)用戶權(quán)限管理的設(shè)置
  3. 淺析SQL Server數(shù)據(jù)庫(kù)專用管理員連接DAC的使用
  4. 在SQL SERVER 2005執(zhí)行存儲(chǔ)過(guò)程的權(quán)限分配問(wèn)題
  5. T-SQL行列相互轉(zhuǎn)換命令:PIVOT和UNPIVOT使用詳解

網(wǎng)站名稱:在SQL觸發(fā)器或存儲(chǔ)過(guò)程中獲取登錄用戶信息
本文鏈接:http://m.5511xx.com/article/djoodii.html