在SQL Server中,怎样参照已有的表建一个结构完全相同的新表?

trybird 2000-06-17 09:44:00
在SQL Server中,怎样参照已有的表建一个结构完全相同的新表?

比如:已有一个Table,名字为aaa
我现在想建一个数据库结构完全相同的新表bbb,但记录内容为空?
请问该如何做?
...全文
5641 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
trybird 2000-07-04
  • 打赏
  • 举报
回复
tanghuan说的对!我问完后也马上醒悟过来,如果导全表,
不必再画蛇添足地加上where 1=1或者where 2=2之类。
如果只导结构,只要永假恒不等就可以了,where 5=6,where 24=3都可以

多谢tanghuan!多谢诸位大侠!
linyu 2000-07-04
  • 打赏
  • 举报
回复
这是一个亡羊补牢的问题,作为一个好的程序员,在设计库结构时,就应该保存好你的SQL脚本,这是设计资料。
如果有脚本在,只要改一下表名就可以。
我是这样做的(并不代表我是好程序员)。
trybird 2000-07-03
  • 打赏
  • 举报
回复
谢谢众位大侠!请原谅我因忙未能及时回复和打分!
众友中回复的方法中,以tanghuan最简捷好用!
Wonny大虾的悉心诚恳实在感人!
tanghuan的方法虽佳,没有Ary高屋建瓴、经天纬地般指点,也难使我等愚蒙凿开混沌,
敞通七窍!

补充总结众大侠妙法:

要使您的数据库对象能使用Select Into命令,以dbo身份连接,右键点击数据库对象
再从菜单中选属性(property),再在options页面,选定Select into/bulk copy
复选框即可。

select * into [bbb] from [aaa] where 1=2 --或者3、4等
以上语句只将[aaa]表的结构导成一个新表[bbb],新表数据全空

select * into [bbb] from [aaa] where 1=1
以上语句将[aaa]表的结构导成一个新表[bbb],并将其中的数据完全导入

我先晾一晾,然后打分!众位大虾,谁还有话,请讲!
另外,我对select into语句中的where 1=1以及where 1=2、where 1=3等
只是知其然而不知其所以然,如果有大侠能详解其所以然,愚弟将不胜感激之至!


tanghuan 2000-07-03
  • 打赏
  • 举报
回复
select * into [bbb] from [aaa] where 1=1
等价于select * into [bbb] from [aaa]
tanghuan 2000-07-03
  • 打赏
  • 举报
回复
1=1 是永真式

1=2 是永假式
w102272 2000-06-20
  • 打赏
  • 举报
回复
好象没有很自动的方法?
是否应该访问数据库系统的系统表?
Wonny 2000-06-20
  • 打赏
  • 举报
回复
在 sql server enterprise manager 中 right-click 某 table,point to All Task-->Generate SQL Scripts...生成 SCRIPT(*.sql),改名 RUN 即可。我用的是 SQL SERVER 7.0, 其他的不懂.
不好意思,我用的操作系统某些字不能显示,不能用中文, 只好如此写了.
码狂 2000-06-20
  • 打赏
  • 举报
回复
tanghuan的说法完全正确,只要不涉及主、外键。他的语句很好。
你出错的原因是数据库禁止了Select Into命令,以dbo身份连接,右键点数据库,将Select Into...选项打上钩,再试一试。

若要主、外键,先创建表aaa的描述脚本(不要选Drop,选上主、外键),然后将脚本中的aaa替换成bbb就行了。
xtjack 2000-06-18
  • 打赏
  • 举报
回复
你可以利用enterprise把这个表的结构导出来,然后去执行这个sql语句不就行了!!可是表名是一定要改的!!!
jia 2000-06-18
  • 打赏
  • 举报
回复
仅仅是建表吗?在那个sqlserver版本,我感觉方法很多,
例如1
在7.0版本中,采用导入导出数据方法都可以建立一个新表,在同一库中,要记住名字不能取一样的。当然,数据同样也过去了,但新表建成了,怎样让它变为空表呢,使用SQL语言“delete from 新表名”,这样新表就建完了。
例如2
在数据库管理软件中,有一种自动生成SQL语言的工具,选择要重建的表名,SQL语言生成了,改变一下表名,在SQL语言执行面板上再执行一次即可。

大致方法就这样。
trybird 2000-06-17
  • 打赏
  • 举报
回复
请tanghuan及众大侠多指教!
trybird 2000-06-17
  • 打赏
  • 举报
回复
我不是要在已建成表bbb,再将数据导过去!
我是要参照一个已有的表aaa,再建一个数据库结构和aaa完全相同的表!
即表的列名(字段名)、数据类型、长度等都不用人工建——
要是用SQL语句也要用Create table ...吧?
导数据也应用——
insert [bbb] select * from [aaa]

至于
select * into 表名 from aaa where 1=2
总好象有点不对,没语法错误么?

不论怎样,多谢大侠指教!
tanghuan 2000-06-17
  • 打赏
  • 举报
回复
如果只是数据列一致,主外键关系,触发器等不需要的话
可以用select * into 表名 from aaa where 1=2
sSam 2000-06-17
  • 打赏
  • 举报
回复
如果是SYBASE SQL SERVER ,则用SYBASE CENTRAL连接到数据库服务器,找到表,右键应该可以看到TABLE DIFINE,导出就可以了
tanghuan 2000-06-17
  • 打赏
  • 举报
回复
我没有明白你的数据库结构是不是指表结构

建的表是不是在同一数据库中

是不是要建立一个数据库同原来相同的数据库

34,575

社区成员

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

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