Sql server SQL Server Management Studio-从触发器打印未显示
我对管理工作室的行为感到困惑。我已经为测试创建了一个简单的触发器(更新操作),它应该向Messages选项卡显示message(打印),但是没有Messages选项卡出现,我看不到任何输出。若我执行任何其他查询,它是确定的,我可以看到结果选项卡和消息选项卡。触发器本身工作(数据正在更改) 这是我的密码:Sql server SQL Server Management Studio-从触发器打印未显示,sql-server,tsql,printing,triggers,Sql Server,Tsql,Printing,Triggers,我对管理工作室的行为感到困惑。我已经为测试创建了一个简单的触发器(更新操作),它应该向Messages选项卡显示message(打印),但是没有Messages选项卡出现,我看不到任何输出。若我执行任何其他查询,它是确定的,我可以看到结果选项卡和消息选项卡。触发器本身工作(数据正在更改) 这是我的密码: SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER TRIGGER [dbo].[Trigger1] ON [dbo].[TestTa
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER TRIGGER [dbo].[Trigger1]
ON [dbo].[TestTable]
FOR UPDATE
AS
PRINT ('YAHOOOOO!!!') /* can't see this message */
UPDATE TestTable
SET TestData = 'testitem'
WHERE (TestId = 2)
2个问题
ALTER TRIGGER [dbo].[Trigger1]
ON [dbo].[TestTable]
FOR UPDATE
AS
PRINT 'YAHOOOOO!!!'; /* can't see this message */
GO
然后,自行运行此UPDATE语句
UPDATE TestTable
SET TestData = 'testitem'
WHERE TestId = 2;
注意:去掉多余的括号。您确定您实际执行的是触发触发器的
UPDATE
语句吗?问题中显示的是触发器定义的一部分,而不是单独的语句。这看起来是个错误。在PRINT
语句之后需要一个GO
,这是一个单独的批。嗨,马丁!谢谢你的回复。为了测试它,我只需点击TestTable->Edit Top 200行,然后手动更改第10行f.e.中的值,并立即将第2行的TestData列值更改为'Anna',所以我认为触发器是有效的,对不起,我是个新手,如果您在SSMS的图形工具中执行此操作,它可能不会在任何地方显示这些非错误消息。尝试从新查询窗口运行UPDATE
语句,而不是使用UI编辑器。这取决于它将退出(在32次调用后)还是不调用触发器的设置。无论哪种方式,触发器中的代码都没有任何意义。不,没有,这是我要求OP重新定义触发器噢,对不起,伙计们,我的错,现在我明白了打印和更新语句是不同的部分,更新实际上触发了触发器