Passer sélectionnez comme paramètre de la procédure stockée
J'ai une procédure stockée T-SQL avec les paramètres suivants
CREATE PROCEDURE [dbo].[SaveData]
-- Add the parameters for the stored procedure here
@UserID varchar(50),
@ServiceID varchar(50),
@param1 varchar(50),
@param2 varchar(50),
@endDate datetime
AS BEGIN
.
.
-- my code --
Je veux savoir si il est possible de passer à la suite de select
comme paramètre:
exec SaveDate (SELECT player.UserID,player.ServiceID, 'no','no',GETDATE()
FROM player)
J'ai essayé quelque chose comme ça, mais il ne fonctionne pas.
Non, ce n'est pas possible.
faire la procédure avec un select, et smack SaveData avec chaque curseur de changement. Que serait easyest. Mais attention, le curseur est supérieur killer.
faire la procédure avec un select, et smack SaveData avec chaque curseur de changement. Que serait easyest. Mais attention, le curseur est supérieur killer.
OriginalL'auteur GVillani82 | 2012-12-31
Vous devez vous connecter pour publier un commentaire.
SÉLECTIONNEZ la requête que vous avez écrit dans votre exemple serait probablement ramener plusieurs lignes (que vous SÉLECTIONNEZ ne comportent pas de clause where ou un TOP(n)). Si votre intention est d'être en mesure d'avoir votre procédure d'engager un "tableau" ensemble de paramètres, à partir de SQL Server 2008, vous êtes en mesure d'utiliser la table de paramètres.
Cela implique la création d'un définis par l'utilisateur, le tableau, et presque sans aucun doute dire le réglage de la logique à l'intérieur de la procédure stockée.
Espère que cela aide 🙂
Voir http://msdn.microsoft.com/en-us/library/bb510489(SQL.100).aspx
pour plus d'informations.
OriginalL'auteur MarkD
1.Une façon est:
a) Déclarer vos variables
b) Assigner des valeurs avec une seule instruction select
c) Exécuter la procédure en passant les variables locales
d) Exécuter les opérations suivantes dans une boucle à l'aide de TOUT ou CURSEUR afin d'appliquer ce pour toutes les lignes dans le tableau 1
2.Autre façon de faire est de définir votre propre type de table, le remplir et le transmettre à la procédure. Toutefois, cela exige de changer un peu votre procédure stockée (dans les params de la liste de votre type personnalisé devrait être suivie par
READONLY
):vous avez raison, il ne sera pas. Il devrait être bouclé à l'aide de TOUT ou CURSEUR. Fixe dans la réponse.
OriginalL'auteur Vladislav