我想知道下面的存储过程有什么问题,因为我没有返回任何错误,但同时我无法更新我的 Watermarkvalue 列。它返回NULL。
ALTER PROCEDURE [dbo].[usp_UpdateWatermark]
@tableName nvarchar(500)
AS
BEGIN
DECLARE
/* ============= Variables ============= */
@watermarkValue nvarchar(MAX)
DECLARE
/* ============= Variables ============= */
@tabName nvarchar(MAX)
Set @tabName ='SELECT '+ @watermarkValue +'= MAX([LOAD_DATE]) FROM '+ @tableName
Execute sp_executesql @tabName
UPDATE dbo.WatermarkTable
SET WatermarkValue = @watermarkValue
WHERE TableName = @tableName
END
Run Code Online (Sandbox Code Playgroud)
这里我的 WatermarkValue 总是返回 NULL。水印表的列是 TableName 和 WatermarkValue,LOAD_DATE 是数据库中另一个表中的列