2

我对一个大型文本文件进行了批量插入,该文件是对我拥有的现有数据库的更新。我遇到了各种截断错误的麻烦,所以我将所有内容都设置为varchar(max). 现在一切都在 SQL Server 中,我想将数据库 b 的数据类型转换为数据库 a 的数据类型。如果两个数据库具有相同的表名和字段名,有哪些方法可以完成这项工作?或者最好有一个在导入后运行的预先存在的脚本,它是“硬编码”的

4

3 回答 3

1

尝试这样的事情并修改结果并执行它

declare @sql varchar(max)
set @sql=''
select 
    @sql=@sql+'Alter table '+table_name+' alter column '+column_name+' '+cast(data_type as varchar(100))+
    case when data_type like '%char%' then '(' else '' end +cast(coalesce(CHARACTER_MAXIMUM_LENGTH,'' ) as varchar(100))+
    case when data_type like '%char%' then ')' else '' end+';' 
 from 
    information_schema.columns
where 
    table_name='test'
print @sql
于 2012-07-27T13:25:29.503 回答
1

您可以创建要从中提取的表的视图,然后将需要更改的列强制转换为您需要将其更改为的数据类型。然后,您可以在适当的数据类型中从该视图中执行所有插入操作。希望有帮助。

于 2012-07-27T13:33:05.960 回答
0

如果要将数据从一个 sql server 数据库移动到另一个数据库,则可以使用Atlantis Interactive Data Inspector。如果您不想这样做,您可以编写数据库 a 中的表,然后ALTER TABLE [table] ALTER COLUMN在每列之前粘贴并在数据库 b 上运行。

于 2012-07-27T13:23:12.140 回答