在不同平臺上導數據時(shí),只能用BCP命令,但是BCP命令不能導出數據庫表結構,所以需進(jìn)行數據庫表結構的導出。在sybase12.5版本以上,可以用如下方式導出表結構:ddlgen –Usa –Pxxx –Ddb_name –Sxxx:port –Ooutput_file其中db_name指所要導出的數據庫名。********************************************低于sybase12.5版本的,得進(jìn)行執行腳本的方式導出表結構。腳本文件內容如下:use sybsystemprocsgoif object_id('dbo.sp_ddl_create_table') is not nulldrop procedure sp_ddl_create_tableprint "Dropping sp_ddl_create_table"gocreate proc sp_ddl_create_tableas-- Creates the DDL for all the user tables in the-- current databaseselect right('create table ' + so1.name + '(' + '', 255 * ( abs( sign(sc1.colid - 1) - 1 ) ) )+sc1.name + ' ' +st1.name + ' ' +substring( '(' + rtrim( convert( char, sc1.length ) ) + ') ', 1,patindex('%char', st1.name ) * 10 ) +substring( '(' + rtrim( convert( char, sc1.prec ) ) + ', ' + rtrim(convert( char, sc1.scale ) ) + ') ' , 1, patindex('numeric', st1.name ) * 10 ) +substring( 'NOT NULL', ( convert( int, convert( bit,( sc1.status & 8 ) ) ) * 4 ) + 1,8 * abs(convert(bit, (sc1.status & 0x80)) - 1 ) ) +right('identity ', 9 * convert(bit, (sc1.status & 0x80)) ) +right(',', 5 * ( convert(int,sc2.colid) - convert(int,sc1.colid) ) ) +right(' )' + 'go' + '' + '', 255 * abs( sign( ( convert(int,sc2.colid) - convert(int,sc1.colid) ) ) -1 ) )from sysobjects so1,syscolumns sc1,syscolumns sc2,systypes st1where so1.type = 'U'and sc1.id = so1.idand st1.usertype = sc1.usertypeand sc2.id = sc1.idand sc2.colid = (select max(colid)from syscolumnswhere id = sc1.id)order by so1.name, sc1.colidgoif object_id('dbo.sp_ddl_create_table') is not nullbegingrant execute on sp_ddl_create_table to publicprint "Created sp_ddl_create_table"endelseprint "Failed to create sp_ddl_create_table"go**************************************************************查看具體某數據庫表結構方法如下,以查看nbcredit數據庫表結構為例:編輯腳本文件script.txt,保存在c:\,內容如下:use nbcreditgosp_ddl_create_tablego然后執行以下語(yǔ)名:isql –Usa –Pxxx –b –i script.txt –o scriptout.txt其中scriptout.txt文件的內容即為整個(gè)數據庫表結構。
聯(lián)系客服