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

创设临时表的困惑

2012-09-08 
创建临时表的困惑小弟目前有个问题 要用SQL临时才能解决就是我要设计一个在前端给予这个临时表命名的表名

创建临时表的困惑
小弟目前有个问题 要用SQL临时才能解决

就是我要设计一个在前端给予这个临时表命名的表名后

再对这个表进行查询的一些作业

我试着写下以下的代码:



SQL code
create proc 新增谓词表(@user varchar(20))as create table #@user谓词表(id int,Property nvarchar(100),Propertyvalue nvarchar(200),defaultelement nvarchar(200))godeclare @user varchar(20)set @user='我是'exec 新增谓词表 @user


之后查询这个表 

select * from #我是谓词表  

select * from #@user谓词表

我下搜寻这个表的命令 都找不到这个表 请问这里该如何编写才能得到我的需求呢?


[解决办法]
探讨
我不小心把declare @sql varchar(200) 改成了 @sql varchar(20)
我改回来之后 重新编译 创造正常的表是可以的 但似乎不能创造临时表
我要的功能是要能创造临时表
这边我直接改写成

SQL code

declare @sql varchar(200)
set @sql='create table #'+@user+N'谓词表(id int,……

[解决办法]
临时表不能这样用。

临时表有作用于范围,在存储过程中创建的临时表,只能在存储过程内部使用,再调用存储过程的地方是看不到里面创建的临时表的。
就像一个函数内的局部变量一样,再这个函数外是不能访问的。

你可以用全局临时表,表名用 ##我是谓词表

把你的代码中的 # 改成 ##

热点排行