IF...ELSE 嵌套 + 临时表的问题

DECLARE @JSZT VARCHAR(10)
set @JSZT='D'

IF @JSZT='D'
  BEGIN
SELECT DISTINCT top 10 ZYHCS INTO #ZYHCS FROM RYDJ 
  END ELSE
  IF @JSZT='C'
BEGIN
SELECT DISTINCT top 9 ZYHCS INTO #ZYHCS FROM RYDJ 
END ELSE
BEGIN
SELECT DISTINCT top 8 ZYHCS INTO #ZYHCS FROM RYDJ 
END

报错:
消息 2714,级别 16,状态 1,第 12 行
数据库中已存在名为 '#ZYHCS' 的对象。
消息 2714,级别 16,状态 1,第 16 行
数据库中已存在名为 '#ZYHCS' 的对象。


注: 我的是SQL2000

作者: dang520yutou   发布时间: 2011-06-15

select * into #t 是创建#t并插入数据。

因此不能多次select into
创建后可以 insert into

作者: maco_wang   发布时间: 2011-06-15

已经创建了#ZYHCS临时表,后面将不能再select into 同一个临时表,要么改个临时表的表名,要么就insert select * from 语句

作者: jxqn_liu   发布时间: 2011-06-15

我不是用IF 判断它了吗,只可能执行一个啊。

作者: dang520yutou   发布时间: 2011-06-15

SQL code
DECLARE @JSZT VARCHAR(10)
set @JSZT='D'

IF @JSZT='D'
  BEGIN
SELECT DISTINCT top 10 ZYHCS INTO #ZYHCS FROM RYDJ  
  END 
  IF @JSZT='C'
BEGIN
insert into #zyhcs 
select DISTINCT top 9 ZYHCS from rydj
END ELSE
BEGIN
insert into #zyhcs 
select DISTINCT top 8 ZYHCS from rydj
END

作者: chuanzhang5687   发布时间: 2011-06-15

SQL code

DECLARE @JSZT VARCHAR(10)
set @JSZT='D'

CREATE TABLE #ZYHCS(ZYHCS VARCHAR(100))

IF @JSZT='D'
  BEGIN
   INSERT INTO #ZYHCS SELECT DISTINCT top 10 ZYHCS FROM RYDJ  
  END ELSE
  IF @JSZT='C'
    BEGIN
     INSERT INTO #ZYHCS SELECT DISTINCT top 9 ZYHCS FROM RYDJ  
    END ELSE
      BEGIN
       INSERT INTO #ZYHCS SELECT DISTINCT top 8 ZYHCS FROM RYDJ  
      END

--try!

作者: AcHerat   发布时间: 2011-06-15

引用 5 楼 acherat 的回复:

SQL code

DECLARE @JSZT VARCHAR(10)
set @JSZT='D'

CREATE TABLE #ZYHCS(ZYHCS VARCHAR(100))

IF @JSZT='D'
BEGIN
INSERT INTO #ZYHCS SELECT DISTINCT top 10 ZYHCS FROM RYDJ
END ELSE
IF @JSZT=……
顶小三

作者: tcjacky   发布时间: 2011-06-16