首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

MS SQL的BUG?该怎么解决

2012-03-05 
MS SQL的BUG?直接上代码:SQL code IF 12beginSELECT * INTO #t FROM t1DROP TABLE #tendIF 13beginSELEC

MS SQL的BUG?
直接上代码:

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


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

[解决办法]
当然会报错,在同一会话时检查语句通不过

这样改,把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 ...
[解决办法]
String sql = "insert into stu values(" + id + "," + name + "," + sex + "," + age + "," + weight + ")";
这句话有错吗
[解决办法]
探讨
String sql = "insert into stu values(" + id + "," + name + "," + sex + "," + age + "," + weight + ")";
这句话有错吗

[解决办法]
当两个表结构很不一样的时候,用动态SQL完成,
SQL code
declare @sql varchar(2000)IF 1=2begin  select @sql='SELECT * INTO #t FROM '+'t1'+';DROP TABLE #t'endIF 1=3begin  select @sql='SELECT * INTO #t FROM '+'t1'+';DROP TABLE #t'endexec(@sql) 

热点排行