exec ("insert into ryquery select * from " + @tbname + " where query_no= " + convert(varchar(8),@query_no))===>> exec ('insert into ryquery select * from ' + @tbname + ' where query_no= ''' + convert(varchar(8),@query_no))+ ''''
不行啊,4N @query_no int我也刚试了请务必再看看
首先确定字段query_no的类型, 如果是int型, 应: exec ('insert into ryquery select * from ' + @tbname + ' where query_no= ' + convert(varchar(8),@query_no))首先确定字段query_no的类型, 如果是varchar(8)型, 应: exec ('insert into ryquery select * from ' + @tbname + ' where query_no= ''' + convert(varchar(8),@query_no))+ ''''
1.使用'而不要使用" exec ('insert into ryquery select * from '+ @tbname ...)
exec ('insert into ryquery select * from ' + @tbname )--+ ' where query_no= ' + convert(varchar(8),@query_no))各位,请再关注,如上,则运行如果去掉)--,那么就有错误 Server: Msg 156, Level 15, State 1, Procedure sp_getresult, Line 29 Incorrect syntax near the keyword 'convert'. Server: Msg 2812, Level 16, State 62, Line 2 Could not find stored procedure 'sp_getresult'. 可是如果select出来也没错误啊help
这么写, 看看是哪句错:-------------------- declare @SQLs char(400)select @SQLs = 'insert into ryquery select * from ' + @tbname + ' where query_no= ' + convert(varchar(8),@query_no)
exec ('insert into ryquery select * from ' + @tbname + ' where query_no= ''' + convert(varchar(8),@query_no)+'''')
不行啊nononono(null,null): @tbname没问题啊改成 while(@i<(@month_count+1)) begin select @tbname='ry'+convert(varchar(8),dateadd(month,@i, @start_date),112) --select @tbname,@i if(exists(select * from sysobjects where name=@tbname and xtype='U')) select @tbname,@i --exec ('insert into ryquery select * from ' + @tbname + ' where query_no= ' + convert(varchar(8),@query_no)) --exec ('insert into ryquery select * from ' + @tbname + ' where query_no= ''' + convert(varchar(8),@query_no)+'''') /* begin select @sql= "insert into ryquery select * from " + @tbname + " where query_no= " + convert(varchar(8),@query_no) select @sql end */ set @i=@i+1 end goexec sp_getresult '2000/01/01','2001/05/02',177,0运行结果
exec ('insert into ryquery select * from ' + @tbname + ' where query_no= ' + convert(varchar(8),@query_no))首先确定字段query_no的类型, 如果是varchar(8)型, 应:
exec ('insert into ryquery select * from ' + @tbname + ' where query_no= ''' + convert(varchar(8),@query_no))+ ''''
exec ('insert into ryquery select * from '+ @tbname ...)
Server: Msg 156, Level 15, State 1, Procedure sp_getresult, Line 29
Incorrect syntax near the keyword 'convert'.
Server: Msg 2812, Level 16, State 62, Line 2
Could not find stored procedure 'sp_getresult'.
可是如果select出来也没错误啊help
declare @SQLs char(400)select @SQLs =
'insert into ryquery select * from '
+ @tbname
+ ' where query_no= '
+ convert(varchar(8),@query_no)
exec (@SQLs)
--------------------另外, 你的@tbname的值是不是有问题?
while(@i<(@month_count+1))
begin
select @tbname='ry'+convert(varchar(8),dateadd(month,@i, @start_date),112)
--select @tbname,@i
if(exists(select * from sysobjects where name=@tbname and xtype='U'))
select @tbname,@i
--exec ('insert into ryquery select * from ' + @tbname + ' where query_no= ' + convert(varchar(8),@query_no))
--exec ('insert into ryquery select * from ' + @tbname + ' where query_no= ''' + convert(varchar(8),@query_no)+'''')
/*
begin
select @sql= "insert into ryquery select * from " + @tbname + " where query_no= " + convert(varchar(8),@query_no)
select @sql
end
*/
set @i=@i+1
end
goexec sp_getresult '2000/01/01','2001/05/02',177,0运行结果
-------- -----------
ry200103 14(1 row(s) affected)
-------- -----------
ry200104 15(1 row(s) affected)表名正确,后面的数字也正确啊
begin
declare @SQLs char(400) select @SQLs =
'insert into ryquery select * from '
+ @tbname
+ ' where query_no= '
+ convert(varchar(8),@query_no) select @SQLs --exec (@SQLs) end
select @sql =
"insert into ryquery select * from "
+ @tbname
+ " where query_no= "
+ convert(varchar(8),@query_no)
--select @sql
exec (@sql)
end
双引号也一样一样的啊谁有兴趣,找出答案后通知我一声谢谢大家
看看行不行,不行的话限定以一个变量 v_strNo char(10)
select v_strNo = convert(varchar(8),@query_no)
再做可能就简单一些了