1

使用している列が計算されているSQLサーバーの列のデータ型を変換したいのですが、2つの大きな整数の値を挿入すると、算術オーバーフローレコードがコミットされなかったと表示され、期待される結果が得られません。私はそれのために次のコードを持っています。

CREATE TABLE mytable(
    firstcol [int] NULL,
    secondcol [int] NULL,
    computedcol  AS (firstcol * secondcol)

しかし、加算または乗算として 10 桁の演算を入力するとサポートされますが、123456789 * 123456789 を実行すると、算術オーバーフローのエラーが表示され、レコードをコミットできませんでした。おそらく、computedcol データ型が int であり、SQL Server の int データ型が最大 10 桁であることを意味します。これを超えると、オーバーフロー エラーが表示されます。

4

1 に答える 1

1

クエリに確実に回答するこのリンクを確認できます。

演算子が異なるデータ型の 2 つの式を結合する場合、データ型の優先順位の規則により、優先順位の低いデータ型が優先順位の高いデータ型に変換されることが指定されます。計算列定義のデータ型の 1 つを必要なデータ型に変換でき、問題を解決できます。

于 2013-01-19T08:37:04.203 に答える