有没有办法让表变量具有某个table的结构

artmouse 2007-02-03 07:38:01
假设我有一个table abc,
我想在存储过程中建立一个表变量,其结构和abc完全相同
有什么办法?
...全文
345 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
artmouse 2007-05-29
  • 打赏
  • 举报
回复
老大就是老大
baggio785 2007-02-07
  • 打赏
  • 举报
回复
看老大的帖子就是长知识啊~

谢谢老大
zjcxc 元老 2007-02-07
  • 打赏
  • 举报
回复
"联机丛书说建议把临时表替换成表变量"

这个是有条件的, 不是什么情况下都适合用表变量, 比如楼主的情况, 要花大力气去建立一个表变量, 由于要根据源结构建立, 因此得用动态sql
又由于变量的作用域问题, 对于表变量的操作也得放在同一个动态sql中, 否则表变量建立了也无法用.
这样的代价不值得


另一方面, 表变量用多了, 内存耗用会大大增加, 内存不够时, 还得读虚拟内存(这是用硬盘模拟出来的, 效率当然就很有问题了). 如果表变量的数据过大, 由于无法建立索引, 使用的性能上也大打折扣.
zjcxc 元老 2007-02-07
  • 打赏
  • 举报
回复
用临时表的话, select .. into 就可以建立

而且容易控制作用域
baggio785 2007-02-03
  • 打赏
  • 举报
回复
为什么要用临时表啊,联机丛书说建议把临时表替换成表变量啊~
zjcxc 元老 2007-02-03
  • 打赏
  • 举报
回复
建议用临时表
zjcxc 元老 2007-02-03
  • 打赏
  • 举报
回复
查sysobjects和syscolumns获得表结构, 然后根据表结构建立表变量
marco08 2007-02-03
  • 打赏
  • 举报
回复
create table T(abc varchar(10))
go

select * into #T from T

select * from #T
marco08 2007-02-03
  • 打赏
  • 举报
回复
临时表可以

34,575

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧