Comment appeler une Procédure Stockée en Vue?
Comment appeler une Procédure Stockée qui renvoie des données dans une Vue de l'esprit? Est-ce même possible?
- Dupliquer: stackoverflow.com/questions/349979/...
Vous devez vous connecter pour publier un commentaire.
Cette construction n'est pas autorisée dans SQL Server. Une fonction table en ligne peut effectuer qu'une vue paramétrée, mais n'est toujours pas autorisé à appeler un SP de ce genre.
Voici quelques exemples de l'utilisation de la SP et une ligne TVF de façon interchangeable - vous allez voir que la TABLE est plus souple (en gros, c'est plus comme un point de vue qu'une fonction), d'où une ligne TVF peuvent être utilisés, ils peuvent être plus re-eusable:
J'ai pu faire appel de la procédure stockée dans une vue (SQL Server 2005).
À l'intérieur d'une procédure stockée nous avons besoin de définir:
Si vous utilisez Sql Server 2005, vous pouvez utiliser des fonctions à valeur de table. Vous pouvez les appeler directement et de passer des paramètres, tout en les traitant comme s'ils étaient des tables.
Pour plus d'infos, découvrez Table Fonctions Définies Par L'Utilisateur
Vous aurait script de la Vue comme ci-dessous.
Vous serait essentiellement écrire les résultats de votre proc d'une table var ou des temp de la table, puis sélectionnez dans la vue.Modifier - Si vous pouvez modifier votre procédure stockée à une Table de la fonction de Valeur, il serait d'éliminer l'étape de la sélection d'une table temp.
**Edit 2 ** - les Commentaires sont correct de dire qu'une procédure stockée ne peut pas être lu en une vue, comme je l'ai suggéré. Au lieu de cela, convertir votre proc d'un tableau de valeur de la fonction comme indiqué dans d'autres posts et sélectionnez à partir de ce:
Je m'excuse pour la confusion
Noter que même si votre MyTableValueFunction n'accepte pas tous les paramètres, vous devez toujours inclure des parenthèses après, c'est à dire:
Sans les parenthèses, vous obtiendrez un "nom d'objet non Valide" erreur.
Solution la plus simple que j'ai trouvé est de créer un tableau à partir des données que vous obtenez de la SP. Puis créer une vue à partir de:
Insérer ce lors de la dernière étape lors de la sélection des données à partir de la SP.
SELECT * into table1 à PARTIR de #Temp
vue de créer vw_view1 select * from table1