100分求:如何在触发器中得到当前要执行的update, insert,delete等语句(Sql Server 2000)

哈哈007哈 2006-04-06 04:10:27
谢谢,我好急呀
...全文
337 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
哈哈007哈 2006-04-07
  • 打赏
  • 举报
回复
还有没有呀??
哈哈007哈 2006-04-07
  • 打赏
  • 举报
回复
jixu
prcgolf 2006-04-06
  • 打赏
  • 举报
回复
up
jwt1982 2006-04-06
  • 打赏
  • 举报
回复
mark

study
zlp321002 2006-04-06
  • 打赏
  • 举报
回复
可以将长度由2000改为8000
----------------
它只存储255 个字符
zlp321002 2006-04-06
  • 打赏
  • 举报
回复
DBCC INPUTBUFFER 返回包含如下列的行集。

列名 数据类型 说明
EventType
nvarchar(30)
事件类型,例如:RPC、Language 或 No Event。

Parameters
int
0 = 文本

1- n = 参数

EventInfo
nvarchar(255)
对于 RPC 的 EventType,EventInfo 仅包含过程名。对于 Language 或 No Event 的 EventType,仅显示事件的前 255 个字符。

wudan8057 2006-04-06
  • 打赏
  • 举报
回复
可以将长度由2000改为8000
wudan8057 2006-04-06
  • 打赏
  • 举报
回复
在查询分析器工具->选项中,点"结果"标签,修改其中的"每列最多字符数"
哈哈007哈 2006-04-06
  • 打赏
  • 举报
回复
wudan8057(在水一方),非常感谢

我想问问,EventInfo 不是最多只能放255个字符,有些sql语句有4000长,如何能记录呢?
谢谢
wudan8057 2006-04-06
  • 打赏
  • 举报
回复
CREATE TRIGGER t_test ON authors
FOR INSERT,UPDATE,DELETE
AS
BEGIN
DECLARE @EventInfo VARCHAR(2000)

SET NOCOUNT ON
Create TABLE #t_tab (
EventType VARCHAR(50),
Parameters INT,
EventInfo VARCHAR(2000)
)
INSERT #t_tab EXEC('DBCC INPUTBUFFER(@@SPID)')

SELECT @EventInfo = EventInfo FROM #t_tab --得到这个语句字符串变量
END
哈哈007哈 2006-04-06
  • 打赏
  • 举报
回复
DBCC INPUTBUFFER(@@SPID)
是什么?
我如何得到这个语句字符串变量?
wudan8057 2006-04-06
  • 打赏
  • 举报
回复
--有点错误
CREATE TRIGGER t_test ON authors
FOR INSERT,UPDATE,DELETE
AS
BEGIN

DBCC INPUTBUFFER(@@SPID)

END
wudan8057 2006-04-06
  • 打赏
  • 举报
回复
可以考虑下面的方法:
CREATE TRIGGER t_test ONauthors
FOR INSERT,UPDATE,DELETE
AS
BEGIN

DBCC INPUTBUFFER(@@SPID)

END
lsqkeke 2006-04-06
  • 打赏
  • 举报
回复
不可以得到
sxdoujg 2006-04-06
  • 打赏
  • 举报
回复
up

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧