我正在运行SQL Server 2012。
我有一个创建过程语句:
USE [dbname]
GO
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[Test]') AND type in (N'P', N'PC'))
DROP PROCEDURE [dbo].[Test]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[Test]
AS
SELECT 1
当我使用dbname等于一个数据库运行时,我得到:
(1 row(s) affected)
运行时,dbname等于同一服务器上的另一个数据库,我得到:
Command(s) completed successfully.
显然这是一个数据库设置或特定于数据库的东西,但我似乎找不到任何东西。有谁知道造成这种差异的原因是什么?
提前致谢。
答案 0 :(得分:0)
这可能是DDL触发器存在的原因。正如您在评论中提到的,其中一个触发器已设置为NO NO COUNT ON,这将停止显示受Transact-SQL语句或存储过程影响的行数计数作为结果的一部分返回的消息组。如果您对其进行评论,或将其添加到其他触发器,您将看到上述两种情况下的相同结果。