A Java-based tool that generates definitions for server- and database-level objects in Adaptive Server.
(UNIX) $SYBASE/$SYBASE_ASE/bin.
(Windows) %SYBASE%\%SYBASE_ASE%\bin.
ddlgen -Ulogin -Ppassword -S[[ssl:]server | host_name : port_number] [-I interfaces_file] [-Tobject_type] [-Nobject_name] [-Ddbname] [-Cproperty_name=property_value] [-Xextended_object_type] [-Ooutput_file] [-Eerror_file] [-Lprogress_log_file] [-Jclient_charset] [-LC -N logical_cluster_name -F[ % | SGM | GRP | USR | R | D | UDD | U | V | P | XP | I | RI | KC | TR | PC ]
ddlgen -v
If you do not include the -P parameter in your ddlgen statement, ddlgen prompts you to specify a password.
[ssl:] – allows you to generate DDL for objects in SSL-enabled servers. This parameter is optional.
-S[host_name:port_number] – ddlgen uses the host_name and port_number provided, and neither interfaces nor LDAP configuration files are read or parsed.
-S[server] -I – ddlgen parses the interfaces file specified at the user location for the server name (see the -I parameter description).
-S[server] – without specifying an interfaces file, ddlgen does:
ddlgen first tries to read the LDAP configuration file from the standard location
If the LDAP file does not exist, or exists but does not contain an Adaptive Server entry, then the interfaces file is parsed at its standard location for the server name
If the LDAP file exists, then ddlgen uses it to search the server name. The interfaces file is not parsed, and the LDAP configuration file is parsed.
C – cache
D – default
DB – database
DBD – database device
DPD – dump device
EC – execution class
EG – engine group
EK – encrypted keys
GRP – group
I – index
IT – instead of trigger for views
KC – key constraints
L – login
LK – logical key
P – stored procedure
PN – partition name
R – rule
RI – referential integrity
RO – role
RS – remote server
SGM – segment
TR – trigger
U – table
UDD – user-defined datatype
USR – user
V – view
WS – user-defined Web service
WSC – Web service consumer
XOD – local caches
XOU – global caches
XP – extended stored procedure
Is required if you specify any object_type other than DB (database) in the -T parameter.
Accepts wildcards with the use of %.
Generates DDL for a trigger for a table, using the -Ndb_name.table_owner.table_name.trigger_name format.
To generate all triggers for a table, substitute trigger_name with % using the -Ndb_name.table_owner.table_name.% format.
Generates DDL for an encrypted key with -Ndb_name.owner.key_name.
Generates DDL for all items of a specific object type on your server.
Enforces strict order in which it parses the names in the -Ndb_name.owner_name.table_name.object_name format. If you only provide three arguments, ddlgen assumes they are owner_name, table_name, and object_name, in that order. Alternatively, you can also use -Nowner_name.table_name -Ddb_name. ddlgen does not impose this restriction if object_name is an index (I).
You cannot use the -D parameter when generating DDL for all triggers of a table.
-Cproperty_value1=property_value1,property_name2=property_value2
User tables (OU) from proxy tables (OD) when you specify a table as your object type (-TU)
Temporary databases (OD) from normal databases (OU) or archive databases (OA) when you specify database as your object type (-TDB)
SQLJ procedures (OD) from stored procedures (OU) when you specify procedure as your object type (-TP).
If object_type (-T) is U (table) and -X is not specified, ddlgen generates DDL for both user tables and proxy tables. To generate DDL only for:
user tables – use the OU extended object type with the -X option.
proxy tables – use the OD extended object type with the -X option.
in-memory databases, caches, and devices – use the OI extended object type with the -X option.
in-memory temporary databases – use the OIT extended object type with the -X option.
Use extended_object_type DE (-XDE), with the database object type (-TDB) to generate a database and all of its objects in correct dependent order.
Omitting -J sets the character set to a default for the platform. The default may not necessarily be the character set that the client is using.
For tables – [ % | I | RI | KC | TR | PC ]
For databases – [ % | SGM | GRP | USR | R | D | UDD | U | V | P | XP | I | RI | KC | TR]
The filter options are:
% – everything. Retrieves the schema-only definition of a database or table.
SGM – segments
GRP – groups
USR – users
R – rules
D – defaults
UDD – uer-defined datatypes
U – user tables
V – views
P – stored procedures
PC – partition condition
XP – extended stored procedures
I – indexes
RI – referential integrity constraints
KC – primary- and unique-key constraints
TR – triggers
If you use an invalid filter parameter, ddlgen generates a warning, ignores that parameter, and continues with the rest of the valid parameters you specify.
If you specify % along with other filter parameters, ddlgen ignores all other filterable parameters, and only shows schema-only definitions. ddlgen then continues to evaluate the dependencies within the subset of the applied as the filterable parameters for the database.
ddlgen -Uroy -Proy123 -SHARBOR:1955 -TDB -N% -XOA
ddlgen -Uroy -Proy123 -SHARBOR:1955 -TDB -Nadb1
ddlgen -Uroy -Proy123 -SHARBOR:1955 -TC -N"default data cache"
ddlgen -Ulogin -Ppassword -Sserver:port -TC -N%
ddlgen -Usa -Psybase -Sbjrhx64:7710 -Tdb -Nmodel -CENCRYPT_PASSWORD=true
ddlgen -Uroy -Proy123 -SHARBOR:1955 -TDB -Npubs2
ddlgen -Ulogin -Ppassword -Sserver:port
ddlgen -Ulogin -Ppassword -Sserver:port -Ndbname
ddlgen -Ulogin -Ppassword -Sserver:port -TDB -N%
ddlgen -Uroy -Proy123 -SHARBOR:1955 -TD -Njones.phonedflt -Dpubs2
ddlgen -Ulogin -Ppassword -Sserver:port -TD -Ndbname.owner.defaultname
ddlgen -Ulogin -Ppassword -Sserver:port -TD -Nowner.% -Ddbname
ddlgen -Uroy -Proy123 -SHARBOR:1955 -TDBD -Nmaster
ddlgen -Ulogin -Ppassword -Sserver:port -TDBD -N%
ddlgen -Uroy -Proy123 -SHARBOR:1955 -TDPD -Ntapedump1
ddlgen -Ulogin -Ppassword -Sserver:port -TDPD -N%
ddlgen -Uroy -Proy123 -SHARBOR:1955 -TEK -Naccounts.dbo.%
Alternatively, you use the -D option to specify the database name.
ddlgen -Usa -P -Sserver -TEK -NSampleKeysDB.dbo.ssn_key
ddlgen -Usa -P -Sserver -TEK -NSampleKeysDB.dbo.ssn_key -FEKC
ddlgen -Uroy -Proy123 -SHARBOR:1955 -TEK -Ngeorge -XOD
ddlgen -Uroy -Proy123 -SHARBOR:1955 -TEK -Nauthors.dbo.%
ddlgen -Uroy -Proy123 -SHARBOR:1955 -TEG -NLASTONLINE
ddlgen -Ulogin -Ppassword -Sserver:port -TEG -N%
ddlgen -Uroy -Proy123 -SHARBOR:1955 -TEC -NEC2
ddlgen -Ulogin -Ppassword -Sserver:port -TEC -N%
create database tdb on default = '20M' use tdb create table test ( fid varchar(10) ) create view View_A as select * from test create view View_B as select * from View_A CREATE FUNCTION Func_C(@ID VARCHAR(10)) RETURNS varchar(8000) AS BEGIN declare @ret varchar(8000) select @ret = (select fid from View_B) return @ret END go create view View_D as select * from test where fid>dbo.Func_C('111') go CREATE FUNCTION Func_no_depend(@ID VARCHAR(10)) RETURNS varchar(8000) AS BEGIN declare @ret varchar(8000) return @ret END go
ddlgen –S –U –P –TDB –Ntdb –XDE
ddlgen -Uroy -Proy123 -SHARBOR:1955 -TXP -Npubs2.jones.xp_cmdshell
ddlgen -Ulogin -Ppassword -Sserver:port -TXP -Nowner.extendedstoredprocedure -Ddbname
ddlgen -Ulogin -Ppassword -Sserver:port -TXP -Ndbname.owner.%
ddlgen -Uroy -Proy123 -TU -Nauthors -Dpubs2 -F%
ddlgen -Ulogin -Ppassword -TU -Ndbname.owner.table -FI,RI,KC,TR
ddlgen -Ulogin -Ppassword -TU -Ntable_name -Ddbname -FRI,KC
ddlgen -Ulogin -Ppassword -TRI -N%.%.% -Ddbname
ddlgen -Ulogin -Ppassword -TRI -Ndbname%.%.%
ddlgen -Ulogin -Ppassword -TKC -Ndbname.%.%.PK%
ddlgen -Ulogin -Ppassword -TKC -N%.%.PK% -Ddbname
ddlgen -Ulogin -Ppassword -Sserver:port -TF -Ndbname -F%
ddlgen -Ulogin -Ppassword -Sserver:port -TDB -Ndbname -FSGM,GRP,USR,R,D,UDD,V,P,XP,I,RI,KC,TR
ddlgen -Ulogin -Ppassword -Sserver:port -TDB -Ndbname -FTR,D,XP,V,R
ddlgen -Ulogin -Ppassword -Sserver:port -TDB -Ndbname -FU
ddlgen -Uroy -Proy123 -SHARBOR:1955 -TGRP -Npubs2.public
ddlgen -Ulogin -Ppassword -Sserver:port -TGRP -Ngroupname -Ddbname
ddlgen -Ulogin -Ppassword -Sserver:port -TGRP -Ndbname.%
ddlgen -Uroy -Proy123 -SHARBOR:1955 -TDB -Nimdb_1
ddlgen -Uroy -Proy123 -SHARBOR:1955 -TDB -Nimdb_temp1
ddlgen -Uroy -Proy123 -SHARBOR:1955 -TI -Ndbo.authors.au_lname -Dpubs2
ddlgen -Ulogin -Ppassword -Sserver:port -TI -Ndbname.owner.tablename.indexname
If you use a fully qualified name, you may omit the -D option.
ddlgen -Ulogin -Ppassword -Sserver:port -TI -Ndbname.owner.tablename.%
ddlgen -Ulogin -Ppassword -Sserver:port -TI -Ndbname.%.%.%For example, this generates DDL for all indexes for all tables in the pubs2 database:
ddlgen -Usa -P -SHARBOR:1955 -TI -Npubs2.%.%.%
ddlgen -S -U -P -TV -Ndbname.ownername.viewname
ddlgen -S -U -P -TTR
ddlgen -S -U -P -TIT
ddlgen -Usa -P -TKC -Ndbname.%.%.PK%Or:
ddlgen -Usa -P -TKC -N%.%.PK% -Ddbname
ddlgen -Usa -P -Sase1 -TLC -Nmy_lcluster
ddlgen -Usa -P -Sase1 -TLC -N%
ddlgen -Uroy -Proy123 -SHARBOR:1955 -TLK -Npubs2.dbo.authors
ddlgen -Uroy -Proy123 -SHARBOR:1955 -TLK -Npubs2.%.%
ddlgen -Uroy -Proy123 -SHARBOR:1955 -TLK -Npubs2.dbo.authors -FLK
ddlgen -Uroy -Proy123 -SHARBOR:1955 -TL -N%
ddlgen -Ulogin -Ppassword -Sserver:port -TL -Nusername
ddlgen -Uroy -Proy123 -SHARBOR:1955 -TL -Ngeorge
ddlgen -Uroy -Proy123 -SHARBOR:1955 -TRS -NORANGE
ddlgen -Ulogin -Ppassword -Sserver:port -TRS -N%
ddlgen -Uroy -Proy123 -SHARBOR:1955 -TRO -Nsa_role
To generate DDL for all roles:
ddlgen -Ulogin -Ppassword -Sserver:port -TRO -N%
ddlgen -Uroy -Proy123 -SHARBOR:1955 -TR -Nauthors.dbo.%
The % symbol tells ddlgen to create DDLs for all rules that exist on the server.
ddlgen -Ulogin -Ppassword -Sserver:port -TR -Ndbname.owner.rulename
ddlgen -Ulogin -Ppassword -Sserver:port -TR -Nowner.rulename -Ddbname
ddlgen -Uroy -Proy123 -SHARBOR:1955 -TSGM -Npubs2.logsegment
ddlgen -Ulogin -Ppassword -Sserver:port -TSGM -Nsegmentname -Ddbname
ddlgen -Ulogin -Ppassword -Sserver:port -TSGM -Ndbname.%
ddlgen -Uroy -Proy123 -SHARBOR:1955 -TF –Nmaster.dbo.region_of
ddlgen -Ulogin -Ppassword -Sserver:port -TF –Ndbo.region_of –Dmaster
ddlgen -Ulogin -Ppassword -Sserver:port -TF –Ndbname.owner.%
ddlgen -Uroy -Proy123 -SHARBOR:1955 -TP –Nmaster.dbo.%
ddlgen -Ulogin -Ppassword-Sserver:port -TP –Nmaster.dbo.% -XOD
ddlgen -Ulogin -Ppassword-Sserver:port -TP –Nmaster.dbo.% -XOU
ddlgen -Uroy -Proy123 -SHARBOR:1955 -TP -Npubs2.dbo.sp_monitor
ddlgen -Ulogin -Ppassword -Sserver:port -TP -Nowner.procedurename -Ddbname
ddlgen -Ulogin -Ppassword -Sserver:port -TP -Ndbname.owner.%
ddlgen -Uroy -Proy123 -Sssl:HARBOR:1955 -TDB -Npubs2
ddlgen -Uroy -Proy123 -SHARBOR:1955 -TU -Ndbo.% -Dpubs2You can also use the -N parameter to give the fully qualified name of the table:
ddlgen -Ulogin -Ppassword -Sserver:port -TU -Ndbname.tableowner.tablenameAlternatively, also use the -D parameter to specify the database:
ddlgen -Ulogin -Ppassword -Sserver:port -TU -Ntableowner.tablename -DdbnameTo generate DDL for all proxy tables, which uses the value OD, use -XOD instead, where X is the extended type, and OD denotes proxy tables:
ddlgen -Ulogin -Ppassword -Sserver:port -TU -Ntableowner.% -Ddbname -XODTo generate DDL for all user tables, which uses the value OU, use -XOU instead, where X is the extended type, and OU denotes user tables:
ddlgen -Ulogin -Ppassword -Sserver:port -TU -Ntableowner.% -Ddbname -XOUTo generate DDL for all tables, including user tables and proxy tables:
ddlgen -Ulogin -Ppassword -Sserver:port -TU -Ndbname.tableowner.%
ddlgen -Ulogin -Ppassword -Sserver:port -TDB -N%To generate DDL for all temporary databases, use the OD extended database type:
ddlgen -Ulogin -Ppassword -Sserver:port -TDB -XOD -N%Although you can use the OD extended type in Adaptive Server versions 12.5.0.3 and later, versions earlier than 12.5.0.3 issue warning messages. Safely ignore this message; ddlgen continues processing the command.To generate DDL for all databases except temporary databases, use the OU extended type:
ddlgen -Ulogin -Ppassword -Sserver:port -TDB -XOU -N%This generates DDL for a temporary database named tempdb1:
ddlgen -Ulogin -Ppassword -Sserver:port -TDB -Ntempdb1
create temporary database tempdb1 on master = 4, asdas = 2 go
sp_tempdb 'bind','ap', 'isql', 'DB', 'tempdb1' go
When you use the -F parameter to filter a table while generating DDL for a database object, then indexes, referential integrity, key constraints and triggers automatically get filtered, as they are a subset of the table object.
ddlgen -Uroy -Proy123 -SHARBOR:1955 -TTR -Npubs2.dbo.checksumAlternatively, specify the database_name using the -D option:
ddlgen -Ulogin -Ppassword -Sserver:port -TTR -Nowner.triggername -DdbnameYou can also generate DDL for a trigger for a table, using:
-Ndb_name.table_owner.table_name.trigger_nameTo generate DDL for all triggers of a database:
ddlgen -Ulogin -Ppassword -Sserver:port -TTR -Ndbname.owner.%You can also use this format to generate DDL for all triggers of a table:
-Ndb_name.table_owner.table_name.%
ddlgen -Uroy -Proy123 -SHARBOR:1955 -TUDD -Npubs2.IdentypeAlternatively, use the -D option to specify the dbname:
ddlgen -Ulogin -Ppassword -Sserver:port -TUDD -Nuserdefined_datatype -DdbnameTo generate DDL for all user-defined datatypes:
ddlgen -Ulogin -Ppassword -Sserver:port -TUDD -Nbname.%
ddlgen -Uroy -Proy123 -SHARBOR:1955 -TV -Npubs2.miller.retailAlternatively, use the -D option instead of using the fully qualified name:
ddlgen -Ulogin -Ppassword -Sserver:port -TV -Nowner.viewname -DdbnameTo generate DDL for all views:
ddlgen -Ulogin -Ppassword -Sserver:port -TV -Ndbname.owner.%
ddlgen -Uroy -Proy123 -SHARBOR:1995 -TWS -Npubs2.dbo.sp_who_serviceThe syntax for generating DDL for a named user-defined Web service is:
ddlgen -Ulogin -Ppassword -Shost_name:port -TWS -Ndbname.owner.webservice_nameTo generate DDL for all user-defined Web services owned by all users in database dbname:
ddlgen -Ulogin -Ppassword -Shost_name:port -TWS -Ndbname.%.%
ddlgen -Uroy -Proy123 -SHARBOR:1955 -TUSR -Npubs2.smithAlternatively, use both the -N and -D options instead of using a fully qualified name in -N:
ddlgen -Ulogin -Ppassword -Shost_name:port -TUSR -Nusername -DdbnameTo generate DDL for all users:
ddlgen -Ulogin -Ppassword -Sserver:port -TUSR -Ndbname.%
Users must have either sa_role or sso_role to generate DDL for:
Encryption keys
Logins
Roles
For all other objects, users do not need any specific permissions or roles to generate DDL.