想了好几天都没想出个办法,才来问的,请大家帮帮忙吧。
是这样的:
我写了个存储过程,需要允许多个用户并发连接,
所以只能用局部临时表了,
但这时候有个问题:
写局部临时表的时候是在execute()里面写的,(不用execute()而直接用
select *....的话将发生类型转换的错误,比如:
select a into #temp where a in (@str) order by a desc
a是int,@str是varchar的,直接这样写会出错,而用
@query='select a into #temp where a in ('+@str+')order by a desc'
execute(@query)则没问题.
但用execute(@query)的话,里面的临时表在这句完了也就没了,而我后面正需要这个表..
怎么办...请大家帮忙..谢谢
是这样的:
我写了个存储过程,需要允许多个用户并发连接,
所以只能用局部临时表了,
但这时候有个问题:
写局部临时表的时候是在execute()里面写的,(不用execute()而直接用
select *....的话将发生类型转换的错误,比如:
select a into #temp where a in (@str) order by a desc
a是int,@str是varchar的,直接这样写会出错,而用
@query='select a into #temp where a in ('+@str+')order by a desc'
execute(@query)则没问题.
但用execute(@query)的话,里面的临时表在这句完了也就没了,而我后面正需要这个表..
怎么办...请大家帮忙..谢谢
create 那一句有语法错误..可是我没写错...
这个是jbuilder报的错
sql的话就是在execute()前面加了
create table #temp(a bigint,b bigint)
~~~~这个我也试过,因为后面的很长,exec()里面可以执行多条语句的吗?我这样写好象没用:
exec(@queryStr+'select * from #tmp')
SELECT @queryStr = 'SELECT a,b INTO #temp1 FROM Data WHERE a IN (' + @whereStr + ') ORDER BY a Desc'
SELECT @whereStr = ''
-- Executing the above string
EXECUTE (@queryStr)
恩,就是这段,
exec ('create table #t(id int) insert into #t(id) select 1 select * from #t')
SELECT @queryStr = 'SELECT a,b INTO #temp1 FROM Data WHERE a IN (' + @whereStr + ') ORDER BY a Desc'
SELECT @whereStr = ''
-- Executing the above string
EXECUTE (@queryStr)-->改为
create table #temp1(a int,b int)
SELECT @queryStr = 'insert INTO #temp1 (a,b) SELECT a,b FROM Data WHERE a IN (' + @whereStr + ') ORDER BY a Desc'
SELECT @whereStr = ''
-- Executing the above string
EXECUTE (@queryStr)
存储过程怎么会出现Caused by: java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]第 1 行: ')' 附近有语法错误。有问题也会是显示sp_**第n行怎么怎么样
sigh~~
exec()里面定义游标并且使用游标也没问题的吧?
create table #temp1(a int,b int)
--主要是下面这句
SELECT @queryStr = 'insert INTO #temp1 (a,b) SELECT a,b FROM Data WHERE a IN (' + @whereStr + ') ORDER BY a Desc'
SELECT @whereStr = ''
-- Executing the above string
EXECUTE (@queryStr)
我试下上面那位大哥贴的方法先..谢谢