【发布时间】:2021-07-14 17:56:15
【问题描述】:
如何将exec 的结果存储到变量中?
这是我将数据存储在变量中的尝试:
DECLARE @oltp VARCHAR(50) SET @oltp = 'emp'
DECLARE @wh VARCHAR(25) SET @wh = '_wh'
DECLARE @DatabaseName SYSNAME = @oltp + @wh;
DECLARE @oltp_data_days NVARCHAR(500)
DECLARE @Params NVARCHAR(500)
DECLARE @vi int
SET @oltp_data_days = N'(SELECT datediff(DAY, MIN(business_date), GETDATE()) AS keep_days
FROM '+QUOTENAME(@DatabaseName)+'..sales
WHERE business_date > ''1/1/2000 00:00:00'')'
EXEC sp_executesql @oltp_data_days = @oltp_data_days
, @Params = N'@vi INT OUTPUT'
, @vi = @vi OUTPUT
我得到的结果为 Null。
【问题讨论】:
-
INSERT INTO...EXEC...? -
EXEC sp_executesql @oltp_data_days = @oltp_data_days也会出错。sys.sp_executesql没有名为@oltp_data_days的参数。
标签: sql sql-server tsql stored-procedures exec