Comment faire pour supprimer tous les enregistrements dans un tableau déclaré à l'intérieur d'un storedprocedure

Je suis entrain de créer un e-mail file d'attente pour gérer les e-mail de l'envoi. À partir de cette file, je vais prendre un nombre X de dossiers et envoyer des e-mails en fonction du type de champ des enregistrements.

Pour ce que j'ai déclaré un tableau à l'intérieur de la procédure stockée. Lorsque X nombre d'enregistrements sont pris, je suis à la définition du statut de l'enregistrement dans le EmailQ table de traitement. Mais après l'envoi de X nombre de registres, qui est maintenant à l'intérieur du tableau déclaré doit être supprimé.

Pour que je puisse utiliser la Supprimer, mais il y a TRONQUER pour supprimer tous les enregistrements dans le tableau. Mais le tableau déclaré n'a pas identifié comme un Tableau.

WHILE EXISTS ( SELECT * FROM emailQ WHERE Status != 3)
BEGIN
  CREATE PROCEDURE [dbo].[SendMails]
  DECLARE @Temp TABLE (......)
  --Declare all the necessary variables

  INSERT INTO @Temp SELECT TOP 10
  WITH (UPDLOCK, HOLDLOCK)

  --Update the email queue table status of selected set of records in to the @Temp

  DECLARE  dataSet CURSOR FORWARD_ONLY FOR (SELECT.......  FROM @Temp)
  OPEN dataSet
  FETCH NEXT FROM dataSet INTO...

  WHILE @@FETCH_STATUS = 0
  BEGIN
    --send mails acordingly
  END

  CLOSE dataSet
  DEALLOCATE dataSet

  --Update the email queue table status of completed set of records in to the @Temp

  WAITFOR DELAY...
  TRUNCATE @Temp// This is where this Temp table is not identified as a table(It says     "Incorrect sintax... Expecting a table")

 END

Quelle est la manière la plus appropriée pour supprimer les enregistrements à partir de ce tableau déclaré.
J'apprécie également les commentaires sur ma façon de gérer l'envoi de mail.

Grâce.

  • Est-il MySQL ou SQL Server?
  • Avez-vous essayé "DELETE from @Temp" ?
  • IL fonctionne Grâce aarghh.... Savez-vous pourquoi cette Tronquer ne fonctionne pas sur ce tableau déclaré.
InformationsquelleAutor diyoda_ | 2012-08-30