怎么用SQL脚本(注:脚本是已提供最新的数据库,包括表,视图,存储过程,函数)去升级原有的数据库(100分)

  • 主题发起人 主题发起人 eloveme
  • 开始时间 开始时间
E

eloveme

Unregistered / Unconfirmed
GUEST, unregistred user!
怎么用SQL脚本(注:脚本是已提供最新的数据库,包括表,视图,存储过程,函数)去升级原有的数据库,副问一句怎么去备份和还原数据(数据库采用的是三层体系).请各位大虾出手哦
 
直接执行*.sql文件
 
用查询分析器打开,选择要用脚本的数据库,执行脚本
 
一般升级原有数据库时不能破坏原有数据,如果你的升级是在原有表上添加字段或添加新表,则可单独执行添加字段或表的语句;
如果要修改字段的定义,应该保证与原有类型的兼容,即原有类型可转换到新类型而不丢失信息,这也可执行修改的SQL语句;
视图、存储过程及函数的升级不直接影响数据库,故可执行其脚本即可。
 
谢谢各位大蟹的关注 :)

能否给点资料或实例??

TO 网中戏 萧峒
在程序中可以把SQL脚本读进去吗??可以提供资料吗??谢谢....
TO dreamis
再次谢谢 我的思路也是这样的``关键是怎么去比较...字段差异..
 
查詢一個庫中資料表的信息:
select c.name NewTableName, a.name NewFieldName, a.length NewLength,
a.xtype NewType, a.isnullable NewNullable, b.name NewTypeName
from syscolumns a
inner join systypes b on a.xusertype = b.xusertype
inner join sysobjects c on A.id = c.id and c.xtype = 'u'

依次為基礎,比較兩個庫中表的差異:
select * from
(select c.name NewTableName, a.name NewFieldName, a.length NewLength,
a.xtype NewType, a.isnullable NewNullable, b.name NewTypeName
from NewDB.dbo.syscolumns a
inner join NewDB.dbo.systypes b on a.xusertype = b.xusertype
inner join NewDB.dbo.sysobjects c on A.id = c.id and c.xtype = 'u'
)tnew
full outer join
(select o.Name OldTableName, m.Name OldFieldName, m.length OldLength,
m.xtype OldType, m.isnullable OldNullable, n.name OldTypeName
from OldDb.dbo.syscolumns m --on a.id = m.id and a.name = m.name
inner join OldDb.dbo.systypes n on m.xusertype = n.xusertype
inner join OldDb.dbo.sysobjects o on m.id = o.id and o.xtype = 'u'
)told
on tnew.NewTableName = told.OldTableName and tnew.NewFieldName = told.OldFieldName
where NewTableName is null or OldTableName is null or
tnew.NewLength <> told.OldLength or tnew.NewTypeName <> told.OldTypeName or tnew.NewNullable <> told.OldNullable
order by NewTableName, NewFieldName, OldTableName, OldFieldName
 
至於视图,存储过程,函数,
可以先刪除 舊的,
再增加新的就可以了
 
接受答案``谢谢大虾``们```
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
751
SUNSTONE的Delphi笔记
S
S
回复
0
查看
758
SUNSTONE的Delphi笔记
S
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部