【问题标题】:Can't figure out Scalar Variable Error when Altering Procedure更改过程时无法确定标量变量错误
【发布时间】:2020-11-30 20:00:42
【问题描述】:

我有一个现有的 sql server 存储过程,我正在尝试更新它。每次我在其上运行 Alter Procedure 时,都会出现以下错误:

SQL Error: Must declare the scalar variable "@varOne".

我已经在 Google 上四处搜索,但找不到任何可以帮助解决此错误的方法...:/以下步骤:

ALTER PROCEDURE [dbo].[sp_test] (
  -- Declare
  @varOne tinyint,
  @varTwo numeric(17,0)
) As

Set NoCount On
-- Select
Select  *
Into    #t
From    SQL_Test.dbo.trans with (nolock)
Where   test>=123
    And Case @varOne When 1 Then rNo  When 2 Then iNo  When 3 Then sNo End = @varTwo

Union
Select  *
From    SQL_Test.dbo.trsave with (nolock)
Where   date_time > DateAdd(dd, -60, GetDate())
    And Case @varOne When 1 Then rNo  When 2 Then iNo  When 3 Then sNo End = @varTwo

编辑:我通过删除原始程序并重新创建它来解决问题。仍然好奇为什么改变不起作用。猜测是客户端使用 SQL Server 2012 造成的。

【问题讨论】:

  • 另外,不能复制:db<>fiddle.
  • 不知道这些坏习惯。我只是在尝试编辑现有的过程,每次尝试更改它时都会遇到该错误。
  • 这些坏习惯供你阅读和理解。至于错误,正如我所提到的,我无法重现它;该语句不会产生错误。
  • 好像是这样。很高兴您能解决这个问题。

标签: sql-server stored-procedures alter


【解决方案1】:

我通过删除原始程序并重新创建它来解决问题。仍然好奇为什么改变不起作用。猜测是客户端使用 SQL Server 2012 造成的。

【讨论】:

    猜你喜欢
    • 2019-04-16
    • 2022-07-19
    • 2016-08-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多