SqlServer 数据库通用升级方法

SqlServer 数据库的升级,主要是表的升级。
表的升级,有二个方面:表结构、数据;

1、表结构升级,一般都是添加了某些字段,或者修改某些字段的类型等等。需要升级; (删字段操作比较少用。本方法不支持)
2、数据升级,就是复制数据了(数据很重要,当然不能丢);
3、本方法无需知道数据库使用过程中,修改了什么字段、或是添加了什么新的字段;

步骤:
-- 1 创建临时新表

CREATE TABLE tmp_表名(
...
​​​​​​​)

-- 2 取旧表中所有字段     

declare @strOldFields varchar(8000);
declare @sqlOldInsert varchar(8000);
select  @strOldFields = (select LEFT(sName,LEN(sName)-1) as Name from (select (select Name + ',' from syscolumns where id = object_id('表名') for xml path('')) AS sName) A)

-- 3 将旧表数据插入新的临时表

set IDENTITY_INSERT [dbo].[tmp_表名] ON
set  @sqlOldInsert = 'INSERT INTO tmp_表名 (' + @strOldFields+ ') select ' + @strOldFields + ' from 表名'
exec(@sqlOldInsert)
set IDENTITY_INSERT [dbo].[tmp_表名] OFF

-- 4 删除旧表,将临时新表重命名为新表名

DROP TABLE 表名
EXEC sp_rename N'[dbo].[tmp_表名]', N'表名'


OK。搞定!

你可能感兴趣的:(数据库,数据库,sql,mysql,数据库升级,通用)