下列SQL语句为甚么执行失败???

pipsqueak 2003-05-16 02:23:06
declare @sql char(100)
select @sql='create table #temptable(x int)'
exec( @sql)
insert into #temptable values(100)

-------------------------------------
服务器: 讯息 208,层级 16,状态 1,行 4
无效的对象名称 '#temptable'。
...全文
119 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
jack996 2003-05-16
  • 打赏
  • 举报
回复
张柏芝就是我梦中情人,爱轧轧地。
pipsqueak 2003-05-16
  • 打赏
  • 举报
回复
谢谢各位!
//因为EXEC一执行完,所有的东西都结束了,除了##的全局临时表。
我原来不知道exec这个特点.
4点结帖
WT滔滔江水 2003-05-16
  • 打赏
  • 举报
回复
那你可以先把这张表建起来,然后用exec ('ALTER TABLE XX'),我想这样应该能符合你的要求,要不只能象CrazyFor(蚂蚁)说的那样了。因为EXEC一执行完,所有的东西都结束了,除了##的全局临时表。
HawaiiLeo 2003-05-16
  • 打赏
  • 举报
回复
declare @sql char(100)
select @sql='create table ##temptable(x int)'
exec(@sql)
insert into ##temptable values(100)

这个呢??
pipsqueak 2003-05-16
  • 打赏
  • 举报
回复
这样当然不会出错了,但我的sql语句必须动态创建,所以必须用exec.
CrazyFor 2003-05-16
  • 打赏
  • 举报
回复
declare @sql char(100)
select @sql='create table #temptable(x int)' +'insert into #temptable values(100)'

exec( @sql)
caiyunxia 2003-05-16
  • 打赏
  • 举报
回复
declare @sql char(100)
select @sql='create table ' + #temptable + ' (x int)'
exec( @sql)
insert into #temptable values(100)
liukanghui 2003-05-16
  • 打赏
  • 举报
回复
declare @sql char(100)
create table dbo.#temptable(x int)

insert into dbo.#temptable values(100)

试试这样

34,837

社区成员

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

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