+ -
当前位置:首页 → 问答吧 → MS SQL的BUG?

MS SQL的BUG?

时间:2011-12-16

来源:互联网

直接上代码:
SQL code

 IF 1=2
    begin
        SELECT * INTO #t FROM t1
        DROP TABLE #t
    end
IF 1=3 
    begin
        SELECT * INTO #t FROM t1
        DROP TABLE #t
    end



我认为上面的代码是没问题的.可是MS SQL2005/2008总是报错,数据库中已存在名为 '#t' 的对象。
你说这是不是BUG?
凭啥不让我创建两次#t!

作者: xxyj6450   发布时间: 2011-12-16

如果两次插入临时表的字段不一样呢?

作者: xxyj6450   发布时间: 2011-12-16

当然会报错,在同一会话时检查语句通不过

这样改,把if放在where条件处

  SELECT * INTO #t FROM t1 where 1=2
  union all
  select * from t1 where 1=3

或创建临时表接收

SQL code
create table #T(col.....)

if ..
insert into #T...
else if 
insert into #T ...

作者: roy_88   发布时间: 2011-12-16

String sql = "insert into stu values(" + id + "," + name + "," + sex + "," + age + "," + weight + ")";
这句话有错吗

作者: Betamark   发布时间: 2011-12-16

引用 3 楼 betamark 的回复:
String sql = "insert into stu values(" + id + "," + name + "," + sex + "," + age + "," + weight + ")";
这句话有错吗
这个是对的

作者: fredrickhu   发布时间: 2011-12-16