【发布时间】:2018-03-07 15:55:42
【问题描述】:
CREATE PROCEDURE CreateAsset
@NumeratorQuery AS TEXT,
@DenominatorQuery AS TEXT,
@family AS VARCHAR(255),
@control_num AS VARCHAR(255),
@metric_sequence AS VARCHAR(255)
AS
-- Drop Temporary Tables if they exist
IF OBJECT_ID('tempdb.dbo.#TempNumerator') IS NOT NULL
DROP TABLE tempdb.dbo.#TempNumerator
IF OBJECT_ID('tempdb.dbo.#TempDenominator') IS NOT NULL
DROP TABLE tempdb.dbo.#TempDenominator
IF OBJECT_ID('tempdb.dbo.#TempAssets') IS NOT NULL
DROP TABLE tempdb.dbo.#TempAssets
IF OBJECT_ID('tempdb.dbo.#TempSummary') IS NOT NULL
DROP TABLE tempdb.dbo.#TempSummary
-- Create Temporary Numerator Table
SELECT *
INTO #TempNumerator
FROM
(SELECT DISTINCT AssetID
FROM openquery(RISKFABRIC_SACS_PROD, 'SELECT computer_name AS AssetID
FROM SACS_PROD.assets
WHERE (device_type = "SERVER" OR
device_type = "INDETERMINATE" OR
device_type = "VIRTUAL MACHINE")
AND (status = "ACTIVE (PER DOCUMENTATION)" OR status="ACTIVE (DEFINITIVE)")')
) AS #TempNumerator
.
.
.
在上面的存储过程中,我想用@NumeratorQuery 替换子查询中的所有内容,如下所示:
SELECT *
INTO #TempNumerator
FROM (@NumeratorQuery) AS #TempNumerator
如何做到这一点?
【问题讨论】:
标签: sql-server stored-procedures exec temp-tables