行内の列のサブセットの値をデフォルト値 (定義されている場合) または null にリセットする SQL ステートメントまたはストアド プロシージャを探しています。行にはリセットしたくない他の列があります。それ以外の場合は、行を削除して、さまざまなデフォルト値で初期化される新しい行を作成することができます...それは私が望む効果ですが、列の特定のサブセット。
概念的に、私は探しています
UPDATE eirProj
SET <all columns named like 'paf%'> TO THEIR DEFAULT OR NULL
WHERE prjId=@prjId
または少なくとも
UPDATE eirProj
SET pafAuth=<pafAuth default or NULL>, pafComp=<pafComp default or NULL>, paf...
WHERE prjId=@prjId
デフォルト値を 2 つの場所 (テーブル定義とこのリセット コード) で重複してハードコーディングしないようにしています。理想的には、それほど重要ではありませんが、列の追加、削除、または名前の変更によってサブセットが変更された場合でも機能するように、列名をハードコーディングすることは避けたいと思います。
私は SQL Server で作業していますが、これが唯一の方法であれば、T-SQL 固有のソリューションで問題ありません。