0

我有一个表 -> table1,它有 10 列.. Id, Day1, Day2, Day3, Day4, Day5, ...

现在我创建一个新的一天,并希望将新的一天引用到我的 table1 中的列之一

像这样的东西:

    @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-Function 一起使用的提示,但我看不到那里的方法。像这样的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 回答