declare @sql nvarchar(400)
set @sql='select top 10 * into #abc from employees'
EXECUTE(@sql)
select * from #abc以上语句执行后提示错误找不到表#abc,原因是使用execute执行的语句与其外面的语句不在同一会话中,execute中语句执行完毕其会话也就结束了。因此@abc也就被释放了。如果换成全局临时表可解决问题。但又怕访问量大时会有冲突,该如何解决?
set @sql='select top 10 * into #abc from employees'
EXECUTE(@sql)
select * from #abc以上语句执行后提示错误找不到表#abc,原因是使用execute执行的语句与其外面的语句不在同一会话中,execute中语句执行完毕其会话也就结束了。因此@abc也就被释放了。如果换成全局临时表可解决问题。但又怕访问量大时会有冲突,该如何解决?
解决方案 »
- 求一条语句~~ 紧急啊~
- 求一查询语句
- 求思路(能有具体操作更好)。。。
- 软件连接sql server [DBNETLIB][ConectionOpen (connect()).]SQL Server不存在或拒绝访问,源码已丢失,急
- 初学SQL SERVER,请教一个问题·立马结分!
- 非服务器的pc想attach一个数据库文件,被提示数据库文件必须限制在2G以内,如何解决,文件有3G
- 什么是IT?你或你的公司已经IT了吗?
- 錯誤信息:'Cannot resolve collation conflict for equal to operation.'
- 【新手请教】认知无线店中并行频谱分配算法代码
- 求一个Sql语句,如图...
- SQL-T 里有没有查询某个字段的数据库关系
- 在函数中如何动态生成表(包括结构)并返回表的字段可以随传入的参数不同而定吗?
set @sql='select top 10 * into #abc from employees select * from #abc '
EXECUTE(@sql)
declare @sql nvarchar(400)
set @sql='select top 10 * into #abc from employees;select * from #abc'
EXECUTE(@sql)
declare @sql nvarchar(400)
set @sql='select top 10 * into #abc from employees;select * from #abc'
EXECUTE(@sql)
-------------------------------------
另外提外话,实在看不出楼主为什么要用动态SQL。难道直接这样不行吗?
select top 10 * from employees
set @sql='select top 10 * into ##abc from t_goods '
EXECUTE(@sql) select * from ##abc
set @sql='select top 10 * into #abc from employees select top 10 * from #abc '
EXECUTE(@sql)
这个和临时表的作用域有关
你的#abc 这个临时表的作用域是在 EXECUTE(@sql) 内部
当在他外部是 就找不到该临时表
declare @sql nvarchar(400)
--用分号把两条执行语句分隔开
set @sql='select top 10 * into #abc from employees; select * from #abc '
EXECUTE(@sql)
declare @sql nvarchar(400)
set @sql='insert into #abc select top 10 * from sysobjects'
EXECUTE(@sql)
select * from #abc
/*
name id xtype uid info status base_schema_ver replinfo parent_obj crdate ftcatid schema_ver stats_schema_ver type userstat sysstat indexdel refdate version deltrig instrig updtrig seltrig category cache
-------------------------------------------------------------------------------------------------------------------------------- ----------- ----- ------ ------ ----------- --------------- ----------- ----------- ------------------------------------------------------ ------- ----------- ---------------- ---- -------- ------- -------- ------------------------------------------------------ ----------- ----------- ----------- ----------- ----------- ----------- ------
sysobjects 1 S 1 25 -536870909 96 0 0 2000-08-06 01:29:12.717 0 96 0 S 1 113 0 2000-08-06 01:29:12.717 0 0 0 0 0 2 0
sysindexes 2 S 1 29 -536870907 32 0 0 2000-08-06 01:29:12.717 0 32 0 S 1 8273 0 2000-08-06 01:29:12.717 0 0 0 0 0 2 0
syscolumns 3 S 1 32 -536870909 80 0 0 2000-08-06 01:29:12.717 0 80 0 S 1 113 0 2000-08-06 01:29:12.717 0 0 0 0 0 2 0
systypes 4 S 1 20 -536870909 80 0 0 2000-08-06 01:29:12.717 0 80 0 S 1 113 0 2000-08-06 01:29:12.717 0 0 0 0 0 2 0
syscomments 6 S 1 10 -536870911 48 0 0 2000-08-06 01:29:12.717 0 48 0 S 1 81 0 2000-08-06 01:29:12.717 0 0 0 0 0 2 0
sysfiles1 8 S 1 4 -536870912 0 0 0 2000-08-06 01:29:12.717 0 0 0 S 1 65 0 2000-08-06 01:29:12.717 0 0 0 0 0 2 0
syspermissions 9 S 1 11 -536870911 16 0 0 2000-08-06 01:29:12.717 0 16 0 S 1 81 0 2000-08-06 01:29:12.717 0 0 0 0 0 2 0
sysusers 10 S 1 20 -536870909 96 0 0 2000-08-06 01:29:12.717 0 96 0 S 1 113 0 2000-08-06 01:29:12.717 0 0 0 0 0 2 0
sysproperties 11 S 1 5 -536870911 32 0 0 2000-08-06 01:29:12.717 0 32 0 S 1 81 0 2000-08-06 01:29:12.717 0 0 0 0 0 2 0
sysdepends 12 S 1 11 -536870909 64 0 0 2000-08-06 01:29:12.717 0 64 0 S 1 113 0 2000-08-06 01:29:12.717 0 0 0 0 0 2 0(所影响的行数为 10 行)
*/
drop table #abc