0

私はテーブルを持っています -> 、table110列があります .. 、、、、、、...IdDay1Day2Day3Day4Day5

今、私は新しい日を作成し、テーブル1のte列の1つに新しい日を参照したい

そんな感じ:

    @Id AS int
    @Day AS nvarchar,
    @RefDayId AS int
AS
    UPDATE dbo.table1
    SET table1.@Day = @RefDayId
    WHERE table1.Id = @Id
    RETURN

@Day を「Day1」または「Day2」として設定します。しかし、私はこれがうまくいかないことを知っています。EXEC関数で動作するはずだというヒントを得ましたが、そこに方法がありません。このhttp://technet.microsoft.com/en-en/library/bb510489.aspxのようなものは、私が探しているものです。しかし、Transact-SQL は使用せず、MSSQL Express 2010 ストアド プロシージャを使用しています。

4

1 に答える 1

1

おそらく、このような動的SQLを使用しようとするかもしれません...

@Id AS int
@Day AS nvarchar,
@RefDayId AS int
AS
DECLARE @sql   varchar(500)
SELECT @sql = 'UPDATE dbo.table1 SET table1.'||@Day||' = '||@RefDayId||' WHERE table1.Id = '||@Id
EXECUTE(@sql)
RETURN
于 2013-11-05T13:54:51.200 に答える