web-dev-qa-db-ja.com

SQL Server 2008でnvarcharをbigintに変換する

テーブルのすべての行を別のテーブルに挿入し、nvarcharフィールドをbigintに変換したいのですが、convert(bigint, col1)を使用すると、SQL Serverにエラーが表示されます。

データ型nvarcharをbigintに変換中にエラーが発生しました

この問題を解決するにはどうすればよいですか?

12

ISNUMERICを使用して、実際に数値である行を判別することができます。

UPDATE dbo.YourTable
SET BigIntColumn = CAST(NVarcharColumn AS BIGINT)
WHERE ISNUMERIC(NVarcharColumn) = 1

これにより、変換可能な行が変換されます。その他の行は手動で処理する必要があります。

23
marc_s

あなたはbigintをnvarcharに変換する必要があります逆はキャストしない(Other_Column_name as nvarchar)キャストしない(Column_Name as bigint)

0
Gamal Weshahy