sql 能不能用个触发器 获取用户主机名?
我要写个触发器 获取 tlf表更新某个字段的时间和 ip地址 和主机名
能不能帮我写个?
sql 能不能用个触发器 获取用户主机名?
答案:3 悬赏:50
解决时间 2021-03-12 23:42
- 提问者网友:血樱陌殇
- 2021-03-12 12:13
最佳答案
- 二级知识专家网友:浪者不回头
- 2021-03-12 12:34
ip地址 和主机名是服务器还是客户端
SQL2005用sys.dm_exec_connections
或用
master..xp_cmdshell加Dos命令
以下举一下例子,具体实现要根据实现情况
USE Test
GO
CREATE TABLE T1(ID INT,IPAddress NVARCHAr(100),ServerName NVARCHAr(200) DEFAULT host_name())--指定默认为名机名
GO
CREATE TRIGGER tr_T1 ON T1
INSTEAD OF INSERT
AS
SET NOCOUNT ON;
INSERT INTO T1(ID,IPAddress)
SELECt i.ID,t.IPAddress
FROM (SELECt local_net_address AS IPAddress FROM sys.dm_exec_connections WHERe session_id = @@SPID)t,INSERTED i
go
INSERT t1(ID) VALUES(1)
SELECt * FROM T1
DROP TABLE t1
SQL2005用sys.dm_exec_connections
或用
master..xp_cmdshell加Dos命令
以下举一下例子,具体实现要根据实现情况
USE Test
GO
CREATE TABLE T1(ID INT,IPAddress NVARCHAr(100),ServerName NVARCHAr(200) DEFAULT host_name())--指定默认为名机名
GO
CREATE TRIGGER tr_T1 ON T1
INSTEAD OF INSERT
AS
SET NOCOUNT ON;
INSERT INTO T1(ID,IPAddress)
SELECt i.ID,t.IPAddress
FROM (SELECt local_net_address AS IPAddress FROM sys.dm_exec_connections WHERe session_id = @@SPID)t,INSERTED i
go
INSERT t1(ID) VALUES(1)
SELECt * FROM T1
DROP TABLE t1
全部回答
- 1楼网友:晚安听书人
- 2021-03-12 13:51
给你个触发器的例子参考下:
Create Trigger truStudent
On dbo.学生
for Update
As
declare @cj int
declare @xf smallint
if Update(成绩)
select @cj=成绩 from inserted
select @xf=学分 from inserted
begin
if(@cj>=60 and @xf=0)
Update 学生 Set 学分=3
if(@cj<60 and @xf>0)
Update 学生 Set 学分=0
end
- 2楼网友:狠傷凤凰
- 2021-03-12 13:32
把以下在触发器里调用就行了,分为 服务端/客户端i
sql2008用
select connectionproperty('local_net_address') as 服务端ip地址,
connectionproperty('client_net_address') as 客户端ip地址
select
host_name(), --客户端
serverproperty('machinename')--服务端
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯