0
votes

J'ai créé une procédure stockée obtenant une erreur de syntaxe de début

J'ai créé une procédure stockée, mais j'obtiens une erreur de syntaxe de début:

CREATE PROCEDURE Upload_Address
      @COM_Addresstbl 
AS
BEGIN
    SET NOCOUNT ON;

    INSERT INTO COM_Address(Email, CompanyName)
        SELECT Email, CompanyName 
        FROM COM_Address
END


3 commentaires

vous devez définir le type de données pour @COM_Addresstbl du paramètre d'entrée


Pourquoi avez-vous même le paramètre @COM_Addresstbl , alors qu'il n'est jamais utilisé dans votre SP? Votre SP duplique simplement les données des colonnes Email et CompanyName dans le tableau COM_Address . Qu'est-ce que vous essayez réellement d'accomplir ici, car je doute que ce soit pour dupliquer les données.


Que demandez-vous exactement? Pouvez-vous expliquer ce que cette procédure doit faire, car même si nous corrigeons la syntaxe pour que l'erreur disparaisse, cette procédure ne fait rien d'autre que dupliquer toutes les données d'une table. Le paramètre n'est même pas utilisé du tout


3 Réponses :


1
votes

Vous devez spécifier le type d'entrée, par exemple, tapez nvarchar (50) pour COM_Addresstbl

Vous pouvez utiliser le code suivant:

CREATE PROCEDURE Upload_Address
  @COM_Addresstbl  nvarchar(50)
AS
BEGIN
SET NOCOUNT ON;

INSERT INTO COM_Address(Email, CompanyName)
    SELECT Email, CompanyName 
    FROM COM_Address
END


1 commentaires

Le paramètre n'est pas du tout utilisé. Je ne vois pas comment cela aide. Le PO doit mieux expliquer quel est son problème et ce qu'il essaie de réaliser ici



1
votes

Vous devez définir le type de table comme indiqué ci-dessous

CREATE Type tabletypename As table ( Email varchar(max), CompanyName
 varchar(max) )

** comment créer un type de table **

CREATE PROCEDURE Upload_Address
      @COM_Addresstbl tabletypename readonly 

AS
BEGIN
    SET NOCOUNT ON;

    INSERT INTO COM_Address(Email, CompanyName)
        SELECT Email, CompanyName 
        FROM @COM_Addresstbl
END


0 commentaires

0
votes

CRÉER UNE PROCÉDURE Upload_Address COMME COMMENCER SET NOCOUNT ON;

INSERT INTO COM_Address(Email, CompanyName)
    SELECT Email, CompanyName 
    FROM COM_Address

END


0 commentaires