使用以下SQL很容易获取特定主键的值:来自特定表的ID:myTale:
DECLARE @v_maxID bigint; SELECT @v_maxID = MAX(ID) FROM myTable;
我需要的是一个通用SQL代码,用于从表中获取键的最大值,其中键和表都被指定为varchar(max)类型作为参数:
DECLARE @v_maxID bigint; -- SELECT @v_maxID = MAX(@p_ID) FROM @p_Table;
我注释掉SELECT,因为它不起作用.我试图构建一个SQL字符串,我可以执行它,但我无法将最大值恢复到我的本地变量(@v_maxID).有什么建议?
DECLARE @max bigint, @sql nvarchar(max) SET @sql = N'SELECT @max = MAX(' + @p_ID + ') FROM ' + @p_Table EXEC sp_executesql @query = @sql, @params = N'@max bigint OUTPUT', @max = @max OUTPUT PRINT @max
用户是选择者,但我认为这是一个丑陋的想法(过度概括).并且无法优化.只需编写SQL.