0

私はこれをやろうとしていますが、それが可能かどうかはわかりません。

tblRecords1(nvarchar) of table1 to tblRecords(bigint)convert関数を使用して別のテーブルのデータをコピーしようとしています。

しかし、それはエラーを与えています。そうすることは可能ですか?

これにより、tblRecords1の値がすべて数値であることが保証されます。

アップデート

私は次のようにそれをやっています:

INSERT INTO tblRecords (current_job_title,Highest_Education_Stream) SELECT convert(bigint,current_job_title),convert(bigint,Highest_Education_Stream) FROM tblRecords1

だから私は何が悪いのですか?

更新 私はnull値を忘れました。彼らは問題を引き起こしていました。だから私は次のようにそれをやり遂げました:

INSERT INTO tblRecords (current_job_title,Highest_Education_Stream)

 SELECT current_job_title = case when current_job_title is null then 0 else convert(bigint,current_job_title) end,
               Highest_Education_Stream=case when Highest_Education_Streamis null then 0 else convert(bigint,current_job_title) end,
 FROM tblRecords1
4

2 に答える 2

0

変換元のタイプが、変換先のタイプと適切に一致する場合は、変換できます。だからあなたはこれを行うことができます:

declare @from varchar(20) = '1000000'
declare @to bigint

select @to = convert(bigint, @from)
select @to

MSDNのCASTとCONVERTを参照してください

于 2012-08-09T11:23:16.510 に答える
0

以下のようにしてください

INSERT INTO tblRecords(current_job_title、Highest_Education_Stream)SELECT cast(bigint as "datatype of current_job_title")、cast(bigint as "datatype of Highest_Education_Stream")FROM tblRecords1

「current_job_titleのデータ型」と「Highest_Education_Streamのデータ型」を実際のデータ型に置き換え、nullチェックに使用する

ISNULL(変数、0)

于 2012-08-09T13:09:52.980 に答える