【发布时间】:2013-02-28 03:50:55
【问题描述】:
是否可以在 UPDATE() 中使用变量来检查列是否更新?
这是我的示例代码:
DECLARE @ColumnCount int
DECLARE @ColumnCounter int
DECLARE @ColumnName nvarchar(MAX)
SET @ColumnCounter = 0
SELECT @ColumnCount = COUNT(c.COLUMN_NAME) FROM INFORMATION_SCHEMA.COLUMNS c WHERE c.TABLE_NAME = 'Province'
WHILE @ColumnCount >= @ColumnCounter
BEGIN
SELECT @ColumnName = c.COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS c WHERE c.TABLE_NAME = 'Province' AND c.ORDINAL_POSITION = @ColumnCounter
IF (UPDATE(@ColumnName))
SET @ColumnCounter = @ColumnCounter + 1
END
【问题讨论】:
-
您是否试图判断 @ColumnName 变量是否已被上面的选择更新?
-
是的,我正在尝试检查该列是否已更新
-
那么你所要做的就是在之前将它设置为null,然后检查它是否不为null。我将在下面的答案中为您写下。
-
检查一下,您需要声明另一个变量并将其设置为当前变量,以便下次通过循环检查它。见下文。
标签: sql sql-server tsql sql-update