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 データベースから別の SQL Server データベースにデータを移動する場合は、Atlantis Interactive Data Inspectorを使用できます。それをしたくない場合は、データベース a のテーブルをスクリプト化してから、ALTER TABLE [table] ALTER COLUMNすべての列の前に貼り付けて、データベース b で実行できます。

于 2012-07-27T13:23:12.140 に答える