質問にBIGINTするvarchar型から列のデータ型を変換します
#1:どのようにすることができ、任意のデータを失うことなく
。列データ型をVarcharからBigintに変換しますか?SQL - 依存関係
さんが言ってみましょう:
table1.my_ID = "12345" //デフォルトではvarchar
変更へ:
table1.my_ID = 12345 //は
をBIGINTに変換#2。 ..そして、私のテーブルにたくさんの依存関係がある場合はどうしたらいいですか?
私はALTER TABLEを試してみましたが、列を変更:
ALTER TABLE [MY_DATABASE].[dbo].table1
ALTER COLUMN my_ID BIGINT
をし、私はこれらの得た:メッセージ5074
を、レベル16、状態1、行1
オブジェクトは、 'PK_table1は' 依存しています列「my_ID」にあります。
メッセージ5074、レベル16、状態1、行1
オブジェクト 'FK_table2_table1'は、 'my_ID'列に依存します。
メッセージ5074、レベル16、状態1、行1
オブジェクト 'FK_table3_table1'は、 'my_ID'列に依存します。一つ以上の のオブジェクトがこの列にアクセスするため
..blah何とか..
メッセージ4922、レベル16、状態9、行1
ALTER TABLE ALTER COLUMNのmy_IDに失敗しました。
助けてください。
ありがとうございます!
を、人々はこれをすぐに答えるために、万が一あなたがなど、あなたのスキーマのSQL-フィドルを提供することができますか? –
これらの制約を削除し、新しい列をintとして作成し、古い列で新しい列を作成して表を更新し、制約を再作成し、varchar列を削除します – Veljko89