0

次の表のデータを検証する必要があります。(更新:テーブルの挿入および更新トリガー内M

create table M (Column_Name sysname primary key, FirstValue varchar(8000))

テーブルには、 のすべての値が にあることを確認するトリガーがありColumn_Nameます(select column_name from information_schema.columns where table_name = 'T')

問題なくM.FirstValue挿入できることを保証する最善の方法は何ですか。データ型情報を提供できる場所のTパラメータを受け入れるサードパーティ関数はありますか?(Value, Data_type, Max_..._length, etc)information_schema.columns


** FirstValue の値を、Column_Name 列に名前が格納されている列に挿入できるようにしようとしています。

4

1 に答える 1

1

質問を明確にしていただきありがとうございます。これを行うための組み込みの関数やプロシージャはないため、おそらく独自に作成する必要があります。CAST1 つの方法は、値を列と同じデータ型にしようとすることです。変換エラーが発生した場合は、INSERT失敗することがわかっています。

ただし、値がデータ型と互換性がある場合でも、CHECK他の理由で値が挿入されないようにする制約またはトリガーがテーブルに存在する可能性があるため、簡単で信頼できる方法はありません。また、すべての値を文字列として保存するため、datetime への変換などの潜在的な問題が常に発生します。この変換は、言語や日付形式のオプションが異なるために、自分にとってはうまくいきますが、他の人にとっては失敗します。

于 2012-04-05T15:08:21.297 に答える