Appeler une procédure stockée à partir de l'intérieur d'une INSERTION DANS
Donc, j'ai cette procédure stockée qui prend dans un DATETIME paramètre, la date. Il insère cette valeur dans une autre table et retourne l'IDENTIFIANT.
Appelons cette procédure stockée getTimeID. Où DimTime est de la table, elle insère le DATETIME paramètre.
Si je veux copier dans TableB ID et TimeID, pas d'ID et la date.
Je suis en train d'essayer:
INSERT INTO [TableA].dbo.Main (ID, timeID)
SELECT ID,
(EXEC getTimeID date)
FROM [TableB].dbo.Main
Mais je ne peux pas obtenir la syntaxe lors d'un EXEC de travail.
S'il vous plaît aider.
Voulez-vous, dans une déclaration, sélectionnez toutes les lignes (id, date) de la tableA, mais l'appel d'un SP pour chaque ligne de la conversion de la date (de l'insérer dans une autre table et l'obtention de l'ID) et l'aide que TimeID (pour chaque ligne) dans la tableB?
OriginalL'auteur heero101086 | 2011-01-20
Vous devez vous connecter pour publier un commentaire.
La syntaxe pour l'insertion à partir d'une procédure stockée est:
Il est très rigide: le tableau doit correspondre à l'exacte disposition des colonnes de la procédure stockée.
Une solution possible serait de stocker le résultat de la procédure stockée dans une variable de table. Par exemple:
OriginalL'auteur Andomar
Si vous allez à imbriquer vos appels de procédures stockées ou de l'utilisation du SQL dynamique, alors vous finirez par utiliser des tables temporaires à la place de la table des variables. Vous aurez toujours besoin de définir la table à l'avance mais vous aurez à remplir comme ceci:
INSERT INTO #t EXEC sp_executesql @cmd
Les autres processus qui Andomar suggère pour votre scénario spécifique serait bien travailler.
Si vous avez la possibilité, si, je voudrais convertir cette procédure stockée dans une fonction, puis il suffit d'utiliser:
OriginalL'auteur cjbarth