私が持っていた既存のデータベースの更新である大きなテキスト ファイルに一括挿入を行いました。切り捨てエラーであらゆる種類の問題に遭遇したので、すべてを に設定しました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 データベースから別の SQL Server データベースにデータを移動する場合は、Atlantis Interactive Data Inspectorを使用できます。それをしたくない場合は、データベース a のテーブルをスクリプト化してから、ALTER TABLE [table] ALTER COLUMN
すべての列の前に貼り付けて、データベース b で実行できます。
于 2012-07-27T13:23:12.140 に答える