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