0

SQL で行を更新しようとしていますが、更新する列の名前の変数を渡せるようにしたいと考えています。これは可能ですか?

DECLARE @Place varchar(max)
SET @Place = '[MDinner]'

UPDATE [UserMealPlans] SET @Place = NULL WHERE [UserId] = 'ffc3a7ed-264f-4d75-ae4c-aabe900023b6'

これは、1行が影響を受けるという私のステートメントですが、列はnullに設定されていません。

私がこれを行うと、うまくいきます:

UPDATE [UserMealPlans] SET [MDinner] = NULL WHERE [UserId] = 'ffc3a7ed-264f-4d75-ae4c-aabe900023b6'

これを正しく行う方法について何か考えはありますか?

ありがとう!

4

1 に答える 1

2

これには動的 SQL を使用する必要があります。

DECLARE @Place varchar(max)
DECLARE @query  AS NVARCHAR(MAX)
SET @Place = '[MDinner]'

SET @query = 'UPDATE [UserMealPlans] SET ' 
    + @Place + '= NULL WHERE [UserId] = ''ffc3a7ed-264f-4d75-ae4c-aabe900023b6'''

exec(@query)
于 2012-08-27T18:44:05.820 に答える