使用修改的主键值导出数据库微软sql

vxf3dgd4  于 2021-08-09  发布在  Java
关注(0)|答案(0)|浏览(157)

我正在合并多个有大量依赖关系的数据库。我看到的唯一(快速)解决方案是将db标识符预先添加到主键。例如:

1, 2, 3 >>> 7771, 7772, 7773

无法修改pks。这就是为什么标准解决方案(ssms“tasks>generate scripts..)没有帮助。
我编写了一个脚本来模拟标准的导出过程。主要问题是:我的脚本无法识别列的类型并对值应用正确的格式。
在这里:

select 
name as [table], substring(column_names, 1, len(column_names)-1) as [columns],
concat('SELECT ', substring(column_names, 1, len(column_names)-1) ,', concat(''INSERT INTO ',name,' (',substring(column_names, 1, len(column_names)-1),') VALUES '',', replace(substring(column_names, 1, len(column_names)-1),',',', '','' , '),') as [sql] FROM ', 

name) as [sql]
from sys.tables as tab
cross apply (
select col.[name]+', ' 
from sys.columns as col 
where tab.object_id = col.object_id 
for xml path ('')) D (column_names)
order by name

如果你能帮忙,我会非常感激的!

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题