我如何在不修改SQL Server存储过程的情况下,对存储过程的结果添加一个where条件?我已经尝试了这种方法,但是遇到了错误,应该如何修正?
DECLARE @Colonnes TABLE
(
NomColonne NVARCHAR(100),
DataType NVARCHAR(100)
)
INSERT INTO @Colonnes (NomColonne, DataType)
SELECT COLUMN_NAME, DATA_TYPE
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'T_RecapElementTechnique'
DECLARE @query NVARCHAR(MAX) = 'DECLARE @ResultatsTemp TABLE ('
SELECT @query = @query + QUOTENAME(NomColonne) + ' ' + DataType + ','
FROM @Colonnes
SET @query = LEFT(@query, LEN(@query) - 1) + ')'
EXEC sp_executesql @query
INSERT INTO @ResultatsTemp
EXEC adcvie.ChargerRecapElementsTechniques 15
-- Sélectionner les données de la table temporaire
SELECT * FROM @ResultatsTemp where EstVie=1
但是,我遇到了这样的错误:
Msg 1087, Niveau 15, État 2, Ligne 23
Must declare the table variable "@ResultatsTemp".
Msg 1087, Niveau 15, État 2, Ligne 27
Must declare the table variable "@ResultatsTemp";.