如何将exec的结果分配给变量
how to assign results from exec to variable
如何将 exec 命令的结果分配给变量。像下面这样,所以当我做 select @sql2 我得到执行的 varchar sql.
的结果
declare @sql varchar(500)
declare @sql2 varchar(max)
set @sql = 'SELECT
PDB.OutletBrandID, OB.BrandName
FROM
ProductDistributionBrand PDB
INNER JOIN
[IND_roadchef].dbo.OutletBrands OB
ON
PDB.OutletBrandID = OB.OutletBrandID
FOR XML PATH(''ProductDistributionBrandDetail''),ROOT(''ProductDistributionBrandDetails''),TYPE'
--select @sql
set @sql2 = exec(@sql)
select @sql2
您可以使用 Table 变量。像这样尝试,
DECLARE @sql TABLE (col1 VARCHAR(500))
DECLARE @sql2 VARCHAR(max)
SET @sql2 = 'SELECT
PDB.OutletBrandID, OB.BrandName
FROM
ProductDistributionBrand PDB
INNER JOIN
[IND_roadchef].dbo.OutletBrands OB
ON
PDB.OutletBrandID = OB.OutletBrandID
FOR XML PATH(''ProductDistributionBrandDetail''),ROOT(''ProductDistributionBrandDetails''),TYPE'
INSERT INTO @sql
EXEC (@sql2)
SELECT *
FROM @sql
使用输出参数:
declare @sql nvarchar(500)
declare @xml XML
set @sql = 'set @xml = (SELECT ..... FOR XML PATH(''ProductDistributionBrandDetail''),ROOT(''ProductDistributionBrandDetails''),TYPE)'
EXEC sp_executesql @sql, N'@xml XML output', @xml = @xml OUTPUT
select @xml
请参阅此参考资料link 它将向您展示如何使用输出参数
如何将 exec 命令的结果分配给变量。像下面这样,所以当我做 select @sql2 我得到执行的 varchar sql.
的结果declare @sql varchar(500)
declare @sql2 varchar(max)
set @sql = 'SELECT
PDB.OutletBrandID, OB.BrandName
FROM
ProductDistributionBrand PDB
INNER JOIN
[IND_roadchef].dbo.OutletBrands OB
ON
PDB.OutletBrandID = OB.OutletBrandID
FOR XML PATH(''ProductDistributionBrandDetail''),ROOT(''ProductDistributionBrandDetails''),TYPE'
--select @sql
set @sql2 = exec(@sql)
select @sql2
您可以使用 Table 变量。像这样尝试,
DECLARE @sql TABLE (col1 VARCHAR(500))
DECLARE @sql2 VARCHAR(max)
SET @sql2 = 'SELECT
PDB.OutletBrandID, OB.BrandName
FROM
ProductDistributionBrand PDB
INNER JOIN
[IND_roadchef].dbo.OutletBrands OB
ON
PDB.OutletBrandID = OB.OutletBrandID
FOR XML PATH(''ProductDistributionBrandDetail''),ROOT(''ProductDistributionBrandDetails''),TYPE'
INSERT INTO @sql
EXEC (@sql2)
SELECT *
FROM @sql
使用输出参数:
declare @sql nvarchar(500)
declare @xml XML
set @sql = 'set @xml = (SELECT ..... FOR XML PATH(''ProductDistributionBrandDetail''),ROOT(''ProductDistributionBrandDetails''),TYPE)'
EXEC sp_executesql @sql, N'@xml XML output', @xml = @xml OUTPUT
select @xml
请参阅此参考资料link 它将向您展示如何使用输出参数