社区
MS-SQL Server
帖子详情
create table 不能建表
sun8330
2011-07-25 01:59:44
declare @sql varchar(200)
select @sql='create table #tmpdb (god_code char(8) not null,god_desc varchar(50) not null)'
exec (@sql)
以上指令运行成功,但临时表#tempdb没有建出来,不知何故,请各位指点
...全文
105
15
打赏
收藏
create table 不能建表
declare @sql varchar(200) select @sql='create table #tmpdb (god_code char(8) not null,god_desc varchar(50) not null)' exec (@sql) 以上指令运行成功,但临时表#tempdb没有建出来,不知何故,请各位指点
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
15 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
cd731107
2011-07-25
打赏
举报
回复
动态语句是一个独立的批处理过程,相当于最后执行了一个go命令,表示本次批处理结束了,
定义的局部变量什么的都无效了
cd731107
2011-07-25
打赏
举报
回复
[Quote=引用 13 楼 sun8330 的回复:]
你意思是用execute这个指令执行完了以后,程序会话就完成了吗?如果是这样,程序一建临时表完成后,假如要再插入资料的话,不是作不了?该如何处理?
[/Quote]
对的,所以提示你用##全局临时表或者真实表
sun8330
2011-07-25
打赏
举报
回复
你意思是用execute这个指令执行完了以后,程序会话就完成了吗?如果是这样,程序一建临时表完成后,假如要再插入资料的话,不是作不了?该如何处理?
xuam
2011-07-25
打赏
举报
回复
程序一:
当前会话完成,临时表注销
程序二:
当前会话没有完成
[Quote=引用 11 楼 sun8330 的回复:]
程序一:
declare @sql varchar(200)
select @sql='create table #tmpdb (god_code char(8) not null,god_desc varchar(50) not null)'
exec (@sql)
select * from #tmpdb
最后一行运行错误
程序二:
select * into #temp fro……
[/Quote]
sun8330
2011-07-25
打赏
举报
回复
程序一:
declare @sql varchar(200)
select @sql='create table #tmpdb (god_code char(8) not null,god_desc varchar(50) not null)'
exec (@sql)
select * from #tmpdb
最后一行运行错误
程序二:
select * into #temp from abc
select * from #temp
运行正常
这两个程序,为何程序一出错,程序二正常?
疯行无忌
2011-07-25
打赏
举报
回复
1楼对了
l4kangaxx
2011-07-25
打赏
举报
回复
将创建语句,处理语句和结果查询语句放在一个varchar变量里处理就好了,或者就像一楼说的那样用##全剧临时表
xuam
2011-07-25
打赏
举报
回复
[Quote=引用 6 楼 sun8330 的回复:]
可是为何在程序中,用select * into #temp from abc 类似这种语句中生成的临时表在程序运行完了后,只要查询窗口没有关,临时表就存在呢?
[/Quote]
这个结果不是你建的临时表了.
AcHerat
元老
2011-07-25
打赏
举报
回复
那是因为当前会话没有完成,临时表不会自动注销。
sun8330
2011-07-25
打赏
举报
回复
可是为何在程序中,用select * into #temp from abc 类似这种语句中生成的临时表在程序运行完了后,只要查询窗口没有关,临时表就存在呢?
AcHerat
元老
2011-07-25
打赏
举报
回复
试试全部临时表,或者你在外部创建。
AcHerat
元老
2011-07-25
打赏
举报
回复
动态创建?貌似不支持哈!
gdstfox
2011-07-25
打赏
举报
回复
这个是临时表的生命周期问题,1楼已经回答了
-晴天
2011-07-25
打赏
举报
回复
临时表是在一次会话中有效的,因此,当 exec 执行完毕后,临时表就会被释放.如果要在动态语句里创建临时表,要用全局临时表的形式,即用 ##temptb.
cd731107
2011-07-25
打赏
举报
回复
这个临时表是放在动态语句里执行的,执行完以后相当于一个批处理结果了,这个临时表就被删除了,
除非你用真实表,或##全局临时表
create
table
,
create
table
as 与
create
like三种
建表
方式的使用详解
Hive的hql是基于sql而来,而sql中关于表的创建有几种方式。... 使用
create
table
从无到有,按照
建表
的格式和要求实现
建表
。实际开发中较常用的方式,主要可以定制化
建表
。 具体参考博客:https://blo...
Hive
建表
语句详解--
CREATE
TABLE
创
建表
的三种方法 Hive创
建表
的方式(默认路径/user/hive/warehouse,也可以location指定,主要针对external表...
CREATE
TABLE
`mydb.dept`( `dept_no` int, `addr` string, `tel` string) partitioned by(dat...
db2中
create
table
as的
建表
方式
Q:想通过DB2把查询出来的结果定义为别的表,因为db2没有类似(或者说对db2还不熟悉)oracle的
create
table
as select来定义表的方式,所以比较麻烦! 今天抽时间总结了一下DB2定义表的3种方式: 首先创建一个例子表...
SQL
CREATE
TABLE
语句/数据库
建表
转自:SQL
CREATE
TABLE
语句
CREATE
TABLE
语句
CREATE
TABLE
语句用于创建数据库中的表。 SQL
CREATE
TABLE
语法
CREATE
TABLE
表名称 ( 列名称1 数据类型, 列名称2 数据类型, 列名称3 数据类型, .... ) 数据...
MySQL
建表
(
create
table
)命令详解
MySQL
建表
(
create
table
)命令详解 1.
create
table
命令 强调:使用
建表
命令之前必须使用use命令选择表所在的数据库。
create
table
命令的格式如下:
create
table
table
name( col_name1 type auto_increment, ...
MS-SQL Server
34,576
社区成员
254,587
社区内容
发帖
与我相关
我的任务
MS-SQL Server
MS-SQL Server相关内容讨论专区
复制链接
扫一扫
分享
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章