0

我创建了一个非常简单的存储过程,并验证了需要执行的查询是正确的/正在运行的查询。然而,一旦存储在 SP 中,它除了返回 '0' 之外什么都不做:

USE [test]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

ALTER PROCEDURE [dbo].[GenerateVolume] 

AS
BEGIN

    SET NOCOUNT ON;

    UPDATE test.dbo.[c500 CP_Simulation]
set GeneratedVolume = AvgFillRatePerDayPerCP +[dbo].[fn_InvsNorm](RAND(convert(varbinary, newid()))) * StDevFillRatePerDayPerCP
where test.dbo.[c500 CP_Simulation].OrgVPnr = test.dbo.[c500 CP_Simulation].OrgVPnr


END

没有给出错误...请给我一个提示:)

4

1 回答 1

2

当您使用

SET NOCOUNT ON

它将抑制“xx 行受影响”消息。

如果您的查询工作正常,您的行将得到更新。由于您已经告诉 sql server 不要计算更新了多少行,因此您不会被告知更新了多少行。

希望这能消除一些疑问。

于 2012-07-16T11:35:33.917 回答