各位:如何在sql中建一个与已存在表结构一致的空表(Delphi4+sql7)(100分)

  • 主题发起人 主题发起人 gzbanny
  • 开始时间 开始时间
G

gzbanny

Unregistered / Unconfirmed
GUEST, unregistred user!
just like the title.
 
在Database Explorer中,打开该数据库。
双击Table项,
选择你要复制的表
在右边的Text标签上单击
这是,你可以看到该表的建表SQL语句,
全选,复制,
在Enter SQL页中粘贴,
更改SQL语句中的表名,最后执行!
ok了!
 
SELECT * INTO newtable FROM oldtable
where 条件
将符合条件的记录从oldtable中copy到newtable中。
 
同意thtfsyh的办法,但在SQL SEVER中执行完了
还须重建索引!
 
方法一):在ORACLE中有此句可实现:CREATE TABLE 新建表名 AS
SELECT * FROM 源表名;
然后执行DELETE FROM 新建表名 ;
方法一):DELPHI中DATABASE DESKTOP工具中的TOOLS—UTILITIS—COPY
也可实现该功能

 
like this:

SELECT * INTO table2 FROM table1 where 1=2

注:
table1 源表
table2 新表
设置数据库Option的select into/bulk

 
sorry:
1.please don't copy the record from the old-table.
2.the new table just a empty table(only has structure)

thanks
banny
 
Query.Sql.Text:='Create table(
field0 DataType,
field1 DataType,
. .
. .
)';
Query.Execute;
 
我来晚了,
1.按wangxq说的去:
设置数据库当前用户的select into/bulk为ON,然后使用如下句式,
SELECT * INTO desttable FROM sourcetable where 1=2
2.create table desttable as select * from sourcetable where 1=2



 
不妨这样: 在你的应用程序中把所用到的数据库 用SQL 语句自动动态地建立起来
并把这些sql保存下来(比如用STRINGLIST) 下次再用到建相似的表结构时执行
同样的sql 语句 (具体的sql 语句 赞同wangxq的说法)


 
(在运行时刻复制表结构)用两个Table,打开Source Table,将FieldDefs、IndexDefs属性Assign给Target Table,Target Table的TableName属性必须是数据库中唯一的,最后调用CreateTable。OK!
 
同意Bianyueliang

另如果不用assign,可以自己作一个循环
好象TBatchMove也可以创建新表

 
多人接受答案了。
 
后退
顶部