存储过程,更新语句不起作用

时间:2012-07-16 11:19:33

标签: sql-server tsql stored-procedures

我创建了一个非常简单的存储过程,并验证了需要执行的查询是正确/正在运行的查询。然而,一旦存储在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

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

1 个答案:

答案 0 :(得分:2)

使用

SET NOCOUNT ON

它将禁止“xx行受影响”消息。

如果您的查询工作正常,您的行会更新。 既然你告诉sql server不要计算更新了多少行,你就不会被告知有多少行被更新了。

希望能够解决一些疑问。