2017-07-21 25 views
0

Sybase Centralでcreate tableスクリプトを生成したいとします。私は使用しました:
SELECT * FROM INFORMATION_SCHEMA.TABLES これは表形式の情報を提供します。私はこの種の形式と情報は必要ありません。 また、私はddlgenコマンドを使用したくありません。私は(@Shnugoによって答え)SQLで同じスクリプト見つけSybase:クエリを使用してテーブル定義を取得するにはどうすればよいですか?

How I can get table definition in SQL SERVER 2008 R2 using SQL query? を私はすべての場所を検索しかし、このような任意のスクリプトを取得することはできません。私はsybaseでsqlと同じように作成したくありません。私は今やっています。

答えて

0

OKありがとう、私は答えを得た: 、データベース内のすべてのテーブルDDLをフェッチする手順があります:

use sybsystemprocs 
go 

if object_id('dbo.sp_ddl_create_table') is not null 
    drop procedure sp_ddl_create_table 
    print "Dropping sp_ddl_create_table" 
go 

create proc sp_ddl_create_table 
as 

-- Creates the DDL for all the user tables in the 
-- current database 

select 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 st1 
where so1.type = 'U' 
and sc1.id = so1.id 
and st1.usertype = sc1.usertype 
and sc2.id = sc1.id 
and sc2.colid = (select max(colid) 
       from syscolumns 
       where id = sc1.id) 
order by so1.name, sc1.colid 
go 

if object_id('dbo.sp_ddl_create_table') is not null 
begin 
    grant execute on sp_ddl_create_table to public 
    print "Created sp_ddl_create_table" 
end 
else 
    print "Failed to create sp_ddl_create_table" 
go 

go 
は、
関連する問題