摘要:由于@@ServerName在安装数据库之后修改了机器名的情况下,获取到的内容仍然是原来的机器名,造成数据库连接失败,所以不能直接使用该全局变量。此外对升级脚本的执行方式做了一下调整,将版本的判断放到子脚本去判断,调度脚本仅对子脚本进行调度。-- 根据SQL的版本好确定启用xp_cmdshell的方式。declare @DBVersion varchar(50)select @DBVersion= cast(serverproperty('productversion') as varchar(50))declare @index intselect @index = char
阅读全文
摘要: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 =
阅读全文
摘要:目前的项目里面,升级脚本是一个SQL文件,无论软件从哪个版本升级,都会把SQL文件里面的语句全部执行一遍,这样存在两个问题:1.SQL升级文件很庞大,几M很常见,导致文件的加载很慢;2.重复执行脚本内容,性能很低。但是目前的局限是安装包启动的升级程序,只能读取一个指定文件名的SQL脚本,脚本是批处理形式的,带了大量的GO,所以不能通过if xxxbegin 升级脚本end的形式来处理(语法不支持),于是只能另想办法,每一个版本生成一个Update脚本,通过一个调度脚本来决定执行哪些升级脚本。这样就必须使用到xp_cmdshell和osql。考虑到升级的时候,升级程序并不能告诉脚本sa密码和当.
阅读全文