0

我需要抑制从 SQL 函数输出的消息。如1 row affected. 我不能使用SET NOCOUNT,因为它在函数中无效。

有人知道这样做的方法吗?

谢谢。

编辑

我试图限制背景信息,试图将问题归结为本质。但我会扩大。我正在使用 MSSQL2005 和 NHibernate 将记录插入到 SQL 表中。在表上,我有一个计算列,它运行正在报告的函数1 row affected

我真的不想编辑该过程的 NHibernate 部分,但这可能是不可避免的。

4

2 回答 2

2

返回“(受影响的 1 行)”的函数将成为批处理中更大查询的一部分。SET NOCOUNT ON 函数中有没有意义

你需要这样做:

SET NOCOUNT ON;
SELECT * FROM MyUDFTVF();

请注意,存储过程只是一个包装器

CREATE PROC Whatever
AS
    SET NOCOUNT ON;
    SELECT * FROM MyUDFTVF();
GO

SET NOCOUNT ON通常需要停止触发器等破坏客户端代码:为什么在这里需要它?

于 2011-11-15T09:53:01.433 回答
0

nocount设置在功能中不可用。

存储过程允许您设置nocount. 因此,将函数转换为存储过程将解决问题。

否则,调用代码将不得不设置nocount。这应该不难,但如果在许多地方使用该功能可能会很乏味。

PS如果您发布需要抑制计数消息的原因,也许我们可以提供更多解决方案。

于 2011-11-15T09:50:05.897 回答