2011-05-06 163 views
0

我正在尝试执行此查询,但它打印@ TABLESQL11值但未执行。可以帮助任何人执行。sql查询未执行

declare @maxCount int 

set @maxCount=3 

DECLARE @TABLESQL11 VARCHAR(4000) 

set @TABLESQL11='insert into temp11 ' 

set @[email protected]+ 'select attendeeid,Activities,date,time' 

DECLARE @j INT 

SET @j =1 

WHILE @j <[email protected] 

BEGIN 

    set @TABLESQL11 = @TABLESQL11+',q'+CONVERT(VARCHAR,@j)+',A'+CONVERT(VARCHAR,@j) 

     SET @j = @j+1 

END 
set @[email protected]+' from temp1' 

print @TABLESQL11 

exec (@TABLESQL11) 

在此先感谢。

回答

4

当您运行所有,但Exec的你会得到如下(以Instant SQL Formatter格式)

INSERT INTO temp11 
SELECT attendeeid, 
     activities, 
     DATE, 
     TIME, 
     q1, 
     a1, 
     q2, 
     a2, 
     q3, 
     a3 
FROM temp1 

没有什么在声明本身表明,有一个SQL语法问题。这导致一个人得出结论,问题是下列之一。

  1. 有在temp1中没有数据
  2. 你得到你忘了提(像有在temp11领域的#和SELECT语句之间的不匹配)
  3. 数据被插入一个错误到temp11但由于某种原因你没有看到它
0

从我所能理解的代码中,确保表temp1和temp11中都有适当的列。 q1,A1等

执行时,什么是错误?

+0

它不是执行 – Sree 2011-05-06 17:16:31

0

集@ TABLESQL11 = @ TABLESQL11 + ' '+' 选择attendeeid,活动,日期,时间'