当前位置:首页 » 网页前端 » 表结构差异生成ddl脚本
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

表结构差异生成ddl脚本

发布时间: 2022-10-02 15:56:14

❶ 怎么导出sql Server数据库表结构和数据的脚本

1
打开sql server 2008 后,选择你要导出的数据库

2
在数据库上右击,选择【任务】→【生成脚本】

3
进入简介页面,直接点击【下一步】就可以了

4
选择对象页面,可以选择导出整个数据库的脚本,或者其中的部分表,很灵活

5
进入设置脚本选项,首先把导出的路径选择好

防止一会儿忘记设置路径,找不到导去哪里了

然后点击【高级】

6
在高级选项页面,在左侧找到【要编写脚本的数据类型】,然后在右侧的下拉框中选择【架构和数据】

这一步操作千万不要忘记了!除非你不想要数据,只要表的结构。

之后回到编写选项的页面,点击【下一步】

7
要摘要页面,可以做个简单的检查,看前面的选择是不是您想要的

检查无误,点击【下一步】,开始执行

8
好了,导出成功啦 \(^o^)/

快快去你设置的路径找脚本吧

❷ 在sybase centrl如何生成ddl不乱吗

如果要制作一个相同的数据库备份,但又担心现有的建库脚本跟已有数据库不一致,那就需要从已有数据库中导出一份一模一样的数据字典。

最常用的方法有如下2种:
1、采用PowerDesigner的反向工程来导出DDL。
2、采用Sybase自带的DDL生成工具ddlgen。

下面着重描述下ddlgen的用法。

ddlgen的描述:
A Java-based tool that generates definitions for server- and database-level
objects in Adaptive Server. ddlgen supports Adaptive Server version 11.9.2 and
later.
程序所在目录:
windows平台下:$SYBASE/sybcent32
Unix/Linux平台下:$SYBASE_HOME/ASEP/bin

用法:
1、存储过程
ddlgen -Usa -P -Sip:port -Duserdb -TP -N% -O proc.ddl
2、数据库
ddlgen -Usa -P -Sip:port -Duserdb -TDB -Nuserdb -O db.ddl
3、表结构
ddlgen -Usa -P -Sip:port -Duserdb -TU -N% -O table.ddl
4、视图
ddlgen -Usa -P -Sip:port -Duserdb -TV -N% -O view.ddl

注意:
1、正常只要导出这些就可以了。当然如果你定义了触发器或需要导出用户信息都可以。
2、导出数据库的情况下,已经包含了导出表结构定义。如果不需要创建数据库,可以只导表结构定义。
3、表结构定义的所有外键是在最后的,因此无需担心表的先后顺序。
4、用户权限必须是数据库的dbo或sa。

语法:
ddlgen
-Ulogin
-Ppassword
-Shost_name : port_number
[-Tobject_type]
[-Nobject_name]
[-Ddatabase_name]
[-Xextended_object_type]
[-Ooutput_file]
[-Eerror_file]
Or
ddlgen -v

参数说明:
-U login
specifies a login name, and is case-sensitive.
-P password
specifies your password.
-Shost_name : port_number
specifies the host name or IP address of Adaptive Server, as well as its port
number. Separate host_name and port_number with a colon, without spaces
before or after it.
Note You must use the -S option because ddlgen does not connect to a default
server, and does not support interface files.
-Tobject_type
specifies the type of object you are creating. If you do not use -T, ddlgen
creates a DDL for the default database of login. Table 6-3 lists object types
for -T.
-Nobject_name
specifies the fully qualified name of the object you are creating, such as
-Ndb_name.owner.table.index.
The -N option:
is required if you specify any object_type other than DB (database) in
the -T parameter.
accepts wildcards with the use of %.
Use -N% to generate a DDL for all items of a specific object type on your
server.
-Ddatabase_name
specifies the name of the database for the object you specify in the -N option.
The default is the user’s default database.
-Xextended_object_type
differentiates user tables (OU) from proxy tables (OD) when you specify a
table as your object type (-TU). If object_type (-T) is U (table) and -X is not
specified, ddlgen generates DDL for both user tables and proxy tables. To
generate a 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.
-Ooutput_file
specifies an output file for the generated DDL. If you do not specify -O, the
DDL you create appears in a console window.
-Eerror_file
specifies a log file for recording errors. If you do not specify -E, the
generated errors appear in a console window.
-v
displays the version and right message of ddlgen and returns to the
operating system.

Object type描述:
C cache
D default
DB database
DBD database device
DPD mp device
EC execution class
EG engine group
GRP group
I index
L login
P stored procere
R rule
RO role
RS remote server
SGM segment
TR trigger
U table
UDD user-defined datatype
USR user
V view
XP extended stored procere

❸ 怎么导出Sql Server数据库表结构和数据的脚本

在sqlserver中对表操作是最基本的,有时候为了为了避免操作失误带来的问题,先要备份一遍表结构及表中的内容,这样当真的发生误操作时可以很快的将数据恢复,所以说非常有用,自己知道的有点晚,记录下来希望对大家有用。
导出表结构
1、右击数据库->任务->生成脚本
2、在“选择脚本选项”对话框中设置想要的内容
编写创建脚本设置为true,会生成表结构创建脚本:
3、生成的脚本如下
看到生成的脚本中除了列外还有主键约束、字段说明等内容,这是在“选择脚本选项”中设置对应选项为true的缘故
sqlserver2008中默认check约束、外键、唯一键、主键设置为true,如果不需要的话可以设置为false,而没有数据是因为“编写数据的脚本”设置为false的缘故。
导出数据
生成的脚本中没有数据是因为“编写数据的脚本”设置为false的缘故,如果想包含数据的话将“编写数据的脚本”设置为true即可,如果还有其他要求的话可以在“选择脚本选项”中任意设置以满足要求。
包含数据的截图:
sqlserver2008提供了三种保存脚本的方法,如果表中数据很多的话尽量保存到文件中,因为当数据很多时保存到查询分析器中有可能报错,数据量为50多万时我遇到过报错情况,保存到文件中却没问题。

❹ 如何将Excel中表结构数据自动生成SQL脚本的方法

一: 在本地PC新建一个Excel文件(例如:excel2007)
准备工作,左键选择excel文本左上角的图标,选择“Excle选项”。1. 点击“信任中心”->“信任中心设置”->“宏设置”->选择“启用所有宏...”选项。“开发人员宏设置”选项也勾选上。 2. 点击“信任中心”->“信任中心设置”->选择“个人信息选项”,将“文档特定设置”上面默认选择去掉,避免在保存脚本时报错。
二: 在本地PC新建一个excel文件(例如: D:\testdate.xlsx)
按快捷键“ALT + F11”进入宏编辑,输入如下代码后保存。summary()为目标生成代码,SQL()为生成SQL脚本文件代码,按条件生成SQL的脚本如下:
Sub summary()
Dim i As Integer
i = 2
ThisWorkbook.Worksheets(1).Columns(2).Clear
For Each sh In ThisWorkbook.Worksheets
If sh.Name <> " " Then
ThisWorkbook.Worksheets(1).Cells(i, 2).Value = sh.Name
ThisWorkbook.Worksheets(1).Cells(i, 2).Select
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
sh.Name + "!A1", TextToDisplay:=sh.Name
i = i + 1
End If
Next sh

ThisWorkbook.Worksheets(1).Cells.Select

With Selection.Font
.Name = "目录"
.Size = 9
.Strikethrough = False
.Superscript. = False
.Subscript. = False
.OutlineFont = False
.Shadow = False
.TintAndShade = 0
.ThemeFont = xlThemeFontNone
End With
End Sub
Sub SQL()
Dim i As Integer
i = 1
Dim ADO_Stream As Object
Dim strSQL, strDelSQL As String
Dim strTblName As String
Dim col As Long
Dim row As Long
Dim str As String
Dim PK As String
Dim cnt As Integer

PK = "PK"
Dim rowcounts As Long
rowcounts = 0
Dim filecount As Long
filecount = 0
Set ADO_Stream = CreateObject("ADODB.Stream")
ADO_Stream.Type = 2
ADO_Stream.Mode = 3
ADO_Stream.Charset = "unicode"
ADO_Stream.Open

Dim checkType As String
For Each sh In ThisWorkbook.Worksheets
cnt = 0
If sh.Name <> " " And InStr(sh.Name, "template") = 0 Then
strTblName = sh.Cells(1, 2).Value
rowcounts = 1
'Insert SQL
row = 6

Do While sh.Cells(row, 1).Value <> ""
strDelSQL = "delete from " + strTblName + " where "
strSQL = "Insert into " + strTblName + " ("
col = 1
Do While sh.Cells(3, col).Value <> ""
If col <> 1 Then
strSQL = strSQL + ", "
End If
strSQL = strSQL + sh.Cells(3, col).Value
col = col + 1
Loop
strSQL = strSQL + ") VALUES ("
col = 1
Do While sh.Cells(3, col).Value <> ""

str = Trim(CStr(sh.Cells(row, col).Value))

If InStr(Trim(CStr(sh.Cells(2, col).Value)), PK) <> 0 Then
If cnt > 0 Then
strDelSQL = strDelSQL + " and "
End If
strDelSQL = strDelSQL + Trim(CStr(sh.Cells(3, col).Value)) + " = '" + str + "'"
cnt = cnt + 1
End If
If col <> 1 Then
strSQL = strSQL + ", "
End If

If (InStr(Trim(CStr(sh.Cells(4, col).Value)), "Integer") = 0) And (InStr(Trim(CStr(sh.Cells(4, col).Value)), "Decimal") = 0) And ((InStr(Trim(CStr(sh.Cells(4, col).Value)), "DATE") = 0) Or _
((Len(str) > 0) And (InStr(Trim(CStr(sh.Cells(4, col).Value)), "DATE") > 0))) Then
If (Len(str) <= 0) And (InStr(Trim(CStr(sh.Cells(5, col).Value)), "No") = 0) Then
str = "NULL"
ElseIf InStr(Trim(CStr(sh.Cells(4, col).Value)), "DATE") > 0 Then
str = "to_date('" + str + "','yyyy-mm-dd hh24:mi:ss')"
Else
str = "'" + str + "'"
End If

strSQL = strSQL + str
ElseIf (Len(str) <= 0) And (InStr(Trim(CStr(sh.Cells(4, col).Value)), "DATE") > 0) Then
strSQL = strSQL + "NULL"
Else
If (Len(str) <= 0) And (InStr(Trim(CStr(sh.Cells(5, col).Value)), "No") = 0) Then
str = "NULL"
End If

strSQL = strSQL + str
End If

col = col + 1
Loop

strDelSQL = strDelSQL + ";" + vbCrLf
ADO_Stream.WriteText strDelSQL
strSQL = strSQL + ");" + vbCrLf
ADO_Stream.WriteText strSQL
row = row + 1
Loop
End If
i = i + 1
rowcounts = 0
filecount = 0
Next sh
ADO_Stream.SaveToFile ThisWorkbook.Path & "\MstSQL(delete by condition).txt", 2
ADO_Stream.Close
Set ADO_Stream = Nothing
End Sub
点击“保存”宏脚本,主要的一步完成。
三: 在excel文件(test.xlsx)的首页创建两个图标,分别选择右键指定宏,一个指定上面的summary(),一个指定上面的SQL()。然后就可以在后续的sheet页创建自己需要生成SQL脚本的表结构名称了,记得每个sheet页面对应一个表结构及数据,使用方法如下:
A,将需要更新的对象表数据整个sheet拷进工具中,数据只保留需要更新的数据。
B,在第2行标出主键字段,填上“PK”即可。
看看代码
http://www.51testing.com/html/41/195041-831346.html

❺ 有对比sql server 表结构的工具吗

数据库数据对比工具(MSSQL版)是针对MS SQL Server的一款小工具,可以针对两个数据进行表结构和数据的对比。
1、表结构对比:如开发库和正式库之间的结构和数据同步,此工具可以告诉您哪个表结构有字段的增加减少,或者字段类型的改变,并生成sql进行结构的同步。
2、数据对比:如对比两个数据库中的某个表的数据差异,有差异的行会用颜色进行标记,可生成sql脚本进行两个库的同步。
http://blog.csdn.net/swordmanli/article/details/52535544

❻ 如何比较两个数据库表结构的差异

也可以用些大众化的方法:
1.将两数据表生成出创建的脚本,并保存成文本文件。
2.找WinMerge软件,其能很方便比较出两个脚本的差异。

❼ 怎么导出Sql Server数据库表结构和数据的脚本

在SqlServer中对表操作是最基本的,有时候为了为了避免操作失误带来的问题,先要备份一遍表结构及表中的内容,这样当真的发生误操作时可以很快的将数据恢复,所以说非常有用,自己知道的有点晚,记录下来希望对大家有用。导出表结构1、右击数据库->任务->生成脚本2、在“选择脚本选项”对话框中设置想要的内容编写创建脚本设置为TRUE,会生成表结构创建脚本:3、生成的脚本如下看到生成的脚本中除了列外还有主键约束、字段说明等内容,这是在“选择脚本选项”中设置对应选项为TRUE的缘故SqlServer2008中默认CHECK约束、外键、唯一键、主键设置为TRUE,如果不需要的话可以设置为FALSE,而没有数据是因为“编写数据的脚本”设置为FALSE的缘故。导出数据生成的脚本中没有数据是因为“编写数据的脚本”设置为FALSE的缘故,如果想包含数据的话将“编写数据的脚本”设置为TRUE即可,如果还有其他要求的话可以在“选择脚本选项”中任意设置以满足要求。包含数据的截图:SqlServer2008提供了三种保存脚本的方法,如果表中数据很多的话尽量保存到文件中,因为当数据很多时保存到查询分析器中有可能报错,数据量为50多万时我遇到过报错情况,保存到文件中却没问题。

❽ 我想比较两个oracle数据库表结构的差异,有现成的工具或脚本吗

有的事,很多编程工具中打开数据库表都可以比较的。
也可以在oracle的管理控制台中打开两个表比较,也很直观。

❾ 如何在SQL中生成源表的Create Table脚本

你的思路不对。本来就不应该先创建表table2,这样你就得先creat表2,然后再去弄一堆alter语句修改表1
你可以先把表1的creat脚本先生成,然后把表名改成表2,再去执行,就得到了一张与表1结构一模一样的表2了,最后再用insert into table2 select * from table1(其实可以连结构和数据一起导成脚本的,不用自己写insert)
导出table1的结构和触发器等等的方法如下:
右键数据库名 ——任务-生成脚本 ——下一步 ——选择数据库特定对象 ——找到table1,选中它 ——下一步 ——高级 ——仔细看里面的内容,把你要生成的内容改成true,触发器,主键,索引什么的都有(这一步可以把数据也一起生成) ——确定 ——要保存到文件还是生成到新查询窗口自己选择,不停地下一步。
这样结构脚本就出来了,再把生成的脚本里table1的表名改成table2,就可以创建一张结构一模一样的表了。