sql - 将数据类型从一个数据库表转换为另一个数据库表

标签 sql sql-server sql-server-2008

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

最佳答案

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

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

关于sql - 将数据类型从一个数据库表转换为另一个数据库表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11688382/

相关文章:

sql-server-2008 - 部署报告本地 URL 不起作用

c# - 如果行已存在,如何将行插入表或添加值

mysql - Zend 2 子查询列

mysql - 聚合函数的返回值

sql - 如何为 2 键主键创建标识列

sql-server - 分区主明细表

sql - 在 SQL 中创建 CSV 字符串

sql - CONTAINSTABLE 查询无法识别小单词

c++ - 使用 C++ 和 SQL Native Client 为 SQLPutData 准备的 SQLBindParameter

sql - 使用 SQL 在每第 n 次出现分隔符后将字符串拆分为单独的列,并根据需要添加默认值