相关疑难解决方法(0)

使用IF/ELSE IF语句的奇数错误

我正在尝试创建一个依赖于scenario参数值的临时表,并使用以下IF语句,但得到以下错误:

    IF @indexName = 'A'
        begin select top 400 * into #temp from #pretemp order by EMRev desc end
    ELSE IF @indexName = 'B'
        begin select top 75 * into #temp from #pretemp order by EMRev desc end
    ELSE IF @indexName = 'C'
        begin select top 300 * into #temp from #pretemp order by EMRev desc end
    ELSE 
        begin select top 100 * into #temp from #pretemp order by EMRev desc end
Run Code Online (Sandbox Code Playgroud)

消息2714,级别16,状态1,行179数据库中已存在名为"#temp"的对象.消息2714,级别16,状态1,行181数据库中已存在名为"#temp"的对象.消息2714,级别16,状态1,行183数据库中已存在名为"#temp"的对象.

我确定IF语句基于@indexName变量工作(用简单的东西替换block语句(例如,'select @indexName'),程序运行正常).

有关导致此错误的原因的任何想法?

sql t-sql sql-server-2008-r2

4
推荐指数
2
解决办法
1120
查看次数

数据库中已经有一个名为"#result"的对象

Alter Procedure sp_Member(
  @comcode int = 0,
  @SubComCode int = 0
)
as begin
  set nocount on
  If @comcode='0'
  begin
    select (
      select sum(amount)
        from tbcoudet
        where memcode=tbm.memcode and
              expyear=(select max(expyear) from tbexpyear)
              and exists (
                select itemcode
                from tbitem
                where comcode=@comcode and
                  SubComCode=@SubComCode and
                  itemcode=tbcoudet.itemcode
              )
        group by memcode,expyear
      )'TurnOver', *
    into #result from tbmember tbm where can_flag='N'
  end
  If @subcomcode='0'
  begin
    select (
      select sum(amount)
      from tbcoudet
      where memcode=tbm.memcode and expyear=(select max(expyear) from tbexpyear)
        and exists (
          select …
Run Code Online (Sandbox Code Playgroud)

sql sql-server-2005

3
推荐指数
1
解决办法
2万
查看次数

存储过程:数据库中已经有一个名为“#columntable”的对象

请看下面的代码:

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE Test
AS
BEGIN
    begin
    select * into #dbreviews from dbreviews
    end

    drop table #dbreviews

    begin
    select * into #dbreviews from dbreviews
    end

END
GO
Run Code Online (Sandbox Code Playgroud)

我得到的错误是:

'#dbreviews'数据库中已经有一个命名的对象。

像这样的问题:数据库已经有一个名为“#columntable”的对象告诉我这应该是可能的。

sql t-sql sql-server

2
推荐指数
1
解决办法
5184
查看次数