PB修改数据库表结构的技巧二则
<p>在实际开发应用中,经常会遇到修改数据库表结构的情况。用PowerBuiler修改数据库表结构与用Foxbase修改数据库结构不同。在PowerBuilder中,除可以在数据库表结构中添加字段名外,无法直接修改数据库表结构,如删除某个字段名或类型或字段名长度等,都会导致数据库表记录的丢失。我们通过实践探索,总结了几种方法仅供大家参考,请大家批评指正。 </p><p>一、修改数据库表结构,数据库表中没有记录</p><p>---- 方法1:将表结构以Export Table 文件格式输出。 <br/>1. 从Database中选择要修改的数据库表Table。 <br/>2. 从Objects中选择Export Table/View Syntax to Log,取名保存即选Save Log As,以*.sql格式保存。 <br/>3. 从Objects中选择Database Administration。 <br/>4. 从File中选择Dos Open,选文件名File name,*.sql,打开进行修改。 <br/>5. 从Objects中选择Execute SQL。即产生一新的数据库表结构。 </p><p>---- 注意:Table名不要同名。 </p><p>---- 方法2:将表结构以SQL Syntax 文件格式输出。 <br/>1. 从Database中选择要修改的数据库表Table。 <br/>2. 按Preview键。 <br/>3. 从File中选择Save Rows as,File Format 选SQL Syntax,取表名*.sql保存。 <br/>4. 从File中选择Dos Open,打开表名*.sql,进行修改。 <br/>5. 取表名后,Execute SQL。 </p><p>---- 注意:此种方法没有生成Primary Key。 </p><p>二、修改数据库表结构,保存原数据库表中记录</p><p>---- 方法1:先修改数据库表结构,用SQL语句转移数据库表中记录 <br/>1. 将表1生成表1.sql,修改结构,将表1另取名为表2。 <br/>2. 运行表2.sql,生成表2。此时产生一新的数据库表结构。 <br/>3. 从Objects中选择Database Administration,写SQL Statement: <br/>Insert into 新表名 select * from 旧表名; <br/>Execute SQL。将旧表中所有字段内容转入新表中。 <br/>4. 删除表1,从File中选择Dos Open,打开文件名File name即表2.sql,将表2统一改为表1。运行表1.sql,生成新结构的表1,此时无记录。 <br/>5. 按步骤3,将表2中的记录全部转入表1中。 </p><p>---- 若将部分字段转入,写SQL Statement: </p><p>---- insert into 新表名(字段1,字段2......) </p><p>---- select 字段1,字段2......from 旧表名; </p><p>---- Execute SQL。旧表中部分字段内容转入新表中。 </p><p>---- 方法2:将表结构和记录以SQL Syntax 文件格式输出。 <br/>1. 从Database中选择要修改的数据库表Table,按Preview键。 <br/>2. 从File中选择Save Rows as,File Format 选SQL Syntax,取表名*.sql保存。 <br/>3. 从File中选择Dos Open,打开表名*.sql,进行修改。 <br/>4. 取表名后,Execute SQL。 </p><p>---- 方法3:将表结构和记录以TXT 文件格式输出。 <br/>1. 从Database中打开数据库表,按Preview键。 <br/>2. 从File中选择Save Rows as,File Format 选TXT,取表名*.txt保存。 <br/>3. 将表生成表.sql,修改结构,运行表.sql,此时产生一新的数据库表结构。 <br/>4. 从Database中打开数据库表,按Preview键。 <br/>5. 从Rows中选择Import,选*.txt。 <br/>6. 从File中选择Save changes to Database。 </p><p>---- 注意:方法1适用于任何修改数据库表结构的任何情况。方法2和方法3对删除字段名不适用。 </p>
页:
[1]