4

SQL Server の 10 進列を変更した場合の影響を知りたいです。

例では、Decimal(12,2)列があり、それをDecimal(13,3)に変更したい

事実:

  • データが失われることはありません (精度とスケールを上げても、警告はスローされません)。
  • まだ 9 バイトのフィールドがあります。(MSDN リファレンスを参照してください: http://msdn.microsoft.com/en-us/library/ms187746.aspx )

質問 1: 行が 1000 万行以上ある場合、どのように反応しますか?

質問 2: 精度とスケールのアップグレードには時間がかかりますか、それとも瞬時に行われますか (適用される変更のパフォーマンスについて話しています)?

実際に小さなテーブルで試してみたところ、一瞬のようですが、巨大なテーブルで行う前に確認したいことがあります。

4

2 に答える 2

4

バイナリ表現が異なるため、各行に対してログ更新を実行する必要があります。

SELECT CAST(CAST(1 AS Decimal(12,2)) AS VARBINARY), 
       CAST(CAST(1 AS Decimal(13,3)) AS VARBINARY)

戻り値

0x0C02000164000000
0x0D030001E8030000
于 2013-08-28T09:11:19.033 に答える