编码笔记

导航

08 2013 档案

由于@@ServerName等问题对SQL增量升级脚本进行补充
摘要:由于@@ServerName在安装数据库之后修改了机器名的情况下,获取到的内容仍然是原来的机器名,造成数据库连接失败,所以不能直接使用该全局变量。此外对升级脚本的执行方式做了一下调整,将版本的判断放到子脚本去判断,调度脚本仅对子脚本进行调度。-- 根据SQL的版本好确定启用xp_cmdshell的方式。declare @DBVersion varchar(50)select @DBVersion= cast(serverproperty('productversion') as varchar(50))declare @index intselect @index = char 阅读全文

posted @ 2013-08-14 14:25 封三郎 阅读(409) 评论(1) 推荐(0)

SQL升级脚本实现按版本差异化升级(优化)
摘要:1.增加了对SQL Server 2000的兼容;2.支持对脚本目录的批量处理;3.将脚本版本的判断放到具体的升级子脚本中去,让调度脚本更固化。-- 根据SQL的版本好确定启用xp_cmdshell的方式。declare @DBVersion varchar(50)select @DBVersion= cast(serverproperty('productversion') as varchar(50))declare @index intselect @index = charindex('.',@DBVersion)select @DBVersion = 阅读全文

posted @ 2013-08-05 11:06 封三郎 阅读(718) 评论(0) 推荐(0)

SQL升级脚本实现按版本差异化升级
摘要:目前的项目里面,升级脚本是一个SQL文件,无论软件从哪个版本升级,都会把SQL文件里面的语句全部执行一遍,这样存在两个问题:1.SQL升级文件很庞大,几M很常见,导致文件的加载很慢;2.重复执行脚本内容,性能很低。但是目前的局限是安装包启动的升级程序,只能读取一个指定文件名的SQL脚本,脚本是批处理形式的,带了大量的GO,所以不能通过if xxxbegin 升级脚本end的形式来处理(语法不支持),于是只能另想办法,每一个版本生成一个Update脚本,通过一个调度脚本来决定执行哪些升级脚本。这样就必须使用到xp_cmdshell和osql。考虑到升级的时候,升级程序并不能告诉脚本sa密码和当. 阅读全文

posted @ 2013-08-02 14:42 封三郎 阅读(1292) 评论(0) 推荐(0)