新建表变量后,如何给该表加字段?

simonxt 2012-02-13 05:44:59
declare @dtb table(o int, t varchar(50), n varchar(50));

alter table @dtb add cn int;

第二行加字段报错,如何给@dtb加新字段?
...全文
145 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
黄_瓜 2012-02-14
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 simonxt 的回复:]

引用 4 楼 xxyj6450 的回复:
用临时表,使用的时候select * into 动态创建列。
或使用动态sql创建。


能否给个具体示例语句,thanks
[/Quote]
select * into #t from tb where 1=2
select * from tb
黄_瓜 2012-02-14
  • 打赏
  • 举报
回复
表变量不能修改结构另外:

  1)表变量是存储在内存中的,当用户在访问表变量的时候,SQL Server是不产生日志的,而在临时表中是产生日志的;
  2)在表变量中,是不允许有非聚集索引的;
  3)表变量是不允许有DEFAULT默认值,也不允许有约束;
  4)临时表上的统计信息是健全而可靠的,但是表变量上的统计信息是不可靠的;
  5)临时表中是有锁的机制,而表变量中就没有锁的机制。
simonxt 2012-02-14
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 xxyj6450 的回复:]
用临时表,使用的时候select * into 动态创建列。
或使用动态sql创建。
[/Quote]

能否给个具体示例语句,thanks
-晴天 2012-02-13
  • 打赏
  • 举报
回复
复杂的表变量处理,最好改用临时表.
-晴天 2012-02-13
  • 打赏
  • 举报
回复
表变量声明后不能被修改,如果一定要改,可以考虑另声明一个表变量,声明后将前表变量中的数据插入到新表变量中去.
三断笛 2012-02-13
  • 打赏
  • 举报
回复
用临时表,使用的时候select * into 动态创建列。
或使用动态sql创建。
simonxt 2012-02-13
  • 打赏
  • 举报
回复
后边再加是有特殊用处的。
因为字段的名字和数量是不确定的。
AcHerat 2012-02-13
  • 打赏
  • 举报
回复
表变量,那你在定义的时候直接加上就可以了,何必在后边加,而且没这样的吧!
三断笛 2012-02-13
  • 打赏
  • 举报
回复
此路不通,换一种思路。

22,301

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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