注册 登录
编程论坛 SQL Server论坛

关于创建表的问题

史前大暴龙 发布于 2007-04-23 19:18, 573 次点击
为什么我用个declare @sql nvarchar(1000)
set @sql='create table #temp (a int,b int)'
exec (@sql)
这样子做不能创建的?请问是什么原因??
7 回复
#2
xiyou4192007-04-23 20:52

可以的,你的SQL可能没装好吧!
我试过了,可以执行的.

#3
史前大暴龙2007-04-23 21:19

不会吧,系统提示是说无效的标识符,那我再去试试,谢谢了.

#4
史前大暴龙2007-04-23 21:23
不行哦,你执行一下时,系统会提示操作成功,可是在数据库里是没有那张表的存在的,你不信的话,你可以再试下创建,你会发现系统还是提示操作成功,但是你select一下你就知道了
#5
xiyou4192007-04-23 22:14
晕,你创建的是临时表,当然在你的数据库里看不到了,
它在系统的tempdb里面,当你本次关闭数据库时就消失了,
你运行这个试试看:
declare @sql nvarchar(1000)
set @sql='create table table1 (a int,b int)'
exec (@sql)

[此贴子已经被作者于2007-4-23 22:15:21编辑过]

#6
史前大暴龙2007-04-26 09:24

我那样子也试过了,不行哦,但是系统会提示你操作成功,我也试过把那个@SQL给print出来,语句是没错啦,但是就是找不到那表.

#7
棉花糖ONE2007-04-26 10:16
declare @sql nvarchar(1000)
set @sql='create table #table1 (a int,b int)'+char(13)+' select * from #table1'
print @sql
exec (@sql)

你这样试试,临时表只是在当前的session中存在的,不是说一个连接
#8
史前大暴龙2007-04-27 09:05
行了,我明白是为什么了,谢谢各位的帮助
1