USE tempdb GO --增加操作日志表 IF OBJECT_ID('dbo.operator_log') IS NOT NULL DROP TABLE operator_log GO CREATE TABLE dbo.operator_log( id INT IDENTITY(1,1) PRIMARY KEY, hostName NVARCHAR(50), [clientIP] VARCHAR(50), [serverIP] VARCHAR(50), loginame NVARCHAR(50), [program_name] NVARCHAR(200), execTime DATETIME NOT NULL DEFAULT(GETDATE()) ) GO IF OBJECT_ID('dbo.Proc_Test') IS NOT NULL DROP PROC dbo.Proc_Test GO CREATE PROC dbo.Proc_Test AS BEGIN SET NOCOUNT ON --插入到日志表 INSERT INTO dbo.operator_log ( hostName, clientIP, serverIP, loginame, [program_name] ) SELECT s.hostName, con.client_net_address AS [clientIP], con.local_net_address AS [serverIP], s.loginame, s.[program_name] FROM sys.sysprocesses AS s INNER JOIN sys.dm_exec_connections con ON s.spid=con.session_id AND s.spid=@@SPID --其它代码 END GO EXEC dbo.Proc_Test SELECT * FROM dbo.operator_log
或者:
USE tempdb GO --增加操作日志表 IF OBJECT_ID('dbo.operator_log') IS NOT NULL DROP TABLE operator_log GO CREATE TABLE dbo.operator_log( id INT IDENTITY(1,1) PRIMARY KEY, hostName NVARCHAR(50), [clientIP] VARCHAR(50), [serverIP] VARCHAR(50), loginame NVARCHAR(50), [program_name] NVARCHAR(200), execTime DATETIME NOT NULL DEFAULT(GETDATE()) ) GO IF OBJECT_ID('dbo.Proc_Test') IS NOT NULL DROP PROC dbo.Proc_Test GO CREATE PROC dbo.Proc_Test AS BEGIN SET NOCOUNT ON --插入到日志表 INSERT INTO dbo.operator_log ( hostName, clientIP, serverIP, loginame, [program_name] ) SELECT s.[host_name], con.client_net_address AS [clientIP], con.local_net_address AS [serverIP], s.login_name, s.[program_name] FROM sys.dm_exec_connections AS con INNER JOIN sys.dm_exec_sessions AS s ON con.session_id=s.session_id AND s.session_id=@@SPID --其它代码 END GO EXEC dbo.Proc_Test SELECT * FROM dbo.operator_log