SQLServerの列のデータ型を変更する必要があります。では、実行する際の制約は何ですか?
インデックスやその他の制約を削除する必要があることはわかっていますか?
nullではないチェックを削除する必要がありますか?
データ型を変更する前に、他にどのようなことを確認する必要がありますか?
制約を削除してテーブルを変更してから、制約を再度追加する必要があります。
これはそうするための正しい方法ですか?
DROP INDEX UX_1_COMPUTATION ON dbo.Computation
ALTER TABLE dbo.Computation
ALTER COLUMN ComputationID NVARCHAR(25)
CREATE UNIQUE INDEX UX_1_COMPUTATION ON dbo.Computation (ComputationID);
は一意UX_1_COMPUTATION
のインデックス名、Computation
はテーブル名、
ComputationID
は列名です。
これは正しいです ?
Update
したがって、composite index
複数の列が関係している場合、どのように対処しますか?これらのインデックスには、主キー列と非主キー列が含まれています。
次のステートメントを実行しようとしたとき
DROP INDEX UX_2_COMPUTATION ON dbo.Computation
ALTER TABLE dbo.Computation
ALTER COLUMN ComputationID NVARCHAR(25)
CREATE UNIQUE INDEX UX_2_COMPUTATION ON dbo.Computation (ComputationID , ComputeGuid);
次の例外をスローしています
SQL DROP INDEX UX_2_COMPUTATION
ON dbo.Computation
ALTER TABLE dbo.Computation
ALTER COLUMN ComputationID NVARCHAR(10) Not Null
CREATE INDEX UX_2_COMPUTATION
ON dbo.Computation (ComputationID , ComputeGuid): The object
'PK_Computation' is dependent on column 'ComputationID '.:
Caused By: Error executing SQL DROP INDEX UX_2_COMPUTATION
ON dbo.Computation
ALTER TABLE dbo.Computation
ALTER COLUMN ComputationID NVARCHAR(10) Not Null
CREATE INDEX UX_2_COMPUTATION
ON dbo.Computation (ComputationID , ComputeGuid): The object
'PK_Computation' is dependent on column 'ComputationID '.:
Caused By: The object 'PK_Computation' is dependent on column 'ComputationID '.
ありがとう、
-サム