Comment utiliser la Clause where dans Exec Procédure Stockée

Je vais avoir une Procédure Stockée

Structure De La Table:

CREATE TABLE employee(
    id          INTEGER NOT NULL PRIMARY KEY,
    first_name  VARCHAR(10),
    last_name   VARCHAR(10),
    salary      DECIMAL(10,2),
    city        VARCHAR(20),   
)

En ajoutant des Données à la Table des employés:

INSERT INTO employee VALUES (1, 'Karvendhan',  'Palani',4789,'Agra');
GO

INSERT INTO employee VALUES (2, 'Bala',  'Manigandan',8789,'Bombay');
GO

INSERT INTO employee VALUES (3, 'Raj' ,  'Kishore',   5567,'London');
GO

INSERT INTO employee VALUES (4, 'Prayag',  'Pavithran',  4467,'Bombay');
GO

INSERT INTO employee VALUES (5, 'Selva',  'Kumar',  3456, 'Bombay');
GO

select * from employee;

Ma Procédure Stockée:

CREATE PROCEDURE GetEmployeeBasedOnCity
(
    @city VARCHAR(20)
)

AS
BEGIN
    select * from employee where city = @city
END;

Je suis de l'Exécution de la Procédure Stockée: exec GetEmployeeBasedOnCity 'Bombay';

Je me fais de la Sortie:

id      first_name       last_name        salary          city
-----------------------------------------------------------------
2       Bala             Manigandan       8789.00        Bombay
4       Prayag           Pavithran        4467.00        Bombay
5       Selva            Kumar            3456.00        Bombay

J'ai besoin de mettre de la clause where, au moment de la exec GetEmployeeBasedOnCity 'Bombay';
pas à l'intérieur de la Procédure Stockée. De bien vouloir m'aider...

Imaginer la Requête (Approximative de l'Attente)

exec GetEmployeeBasedOnCity 'Bombay' WHERE salary >5000

Les procédures stockées ne sont pas des points de vue et ne peut pas être une partie de requêtes. Si vous souhaitez appliquer des critères supplémentaires, vous devriez être en regardant les vues ou les fonctions. En fait, étant donné le contenu de la procédure stockée, pourquoi ne pas simplement une requête contre employee directement?
Son juste un exemple de sql code source. Dans le scénario réel de ma procédure stockée renvoie >5000 Enregistrements. J'ai besoin d'appliquer le filtre de ce résultat sans modifier la Procédure Stockée... j'ai vu un lien ask.sqlservercentral.com/questions/28987/... mais son donnant à l'erreur...
Vous pas l'utilisation d'une procédure stockée dans une requête. L'utilisation d'une fonction ou d'un point de vue
Beaucoup de Service à l'aide de la Procédure Stockée. Il est possible de requête - sans modification ou la création d'un point de vue ? Pour mon local de référence de but, j'ai besoin de filtrer les données.
La meilleure option est de refactoriser le code de la procédure stockée, extraire le code dans une vue ou une fonction et ensuite appeler cette fonction à la fois de la SP et de votre code. L'autre option est de stocker les résultats de la procédure stockée dans une table temporaire, et ensuite d'interroger la table. C'est très inefficace. Peut-être que vous devriez repenser le design pourquoi voulez-vous de filtrer les résultats de la procédure stockée? Si le filtrage est une exigence commune, pourquoi est-ce une procédure stockée utilisée?

OriginalL'auteur | 2016-03-10