Click here to Skip to main content
15,894,825 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
i used below code to delete rows from two table by passing single value but i am getting error like

Incorrect syntax near ','

SQL
DELETE messages ,usersmessages FROM messages INNER JOIN usersmessages
WHERE messages.messageid= usersmessages.messageid and messages.messageid = 1
Posted
Updated 17-Dec-12 23:37pm
v2
Comments
Rai Pawan 18-Dec-12 4:41am    
you can use foreign key references with cascading delete.
Umapathi K 18-Dec-12 4:46am    
i didnt use any primary key and foreign key
skydger 18-Dec-12 5:51am    
If you have no any foreign keys with cascade delete constraint then you should create a procedure which combines two separate deletes
DELETE FROM usermessages
WHERE messageid = 1

DELETE FROM messages
WHERE messageid = 1

You can also create a trigger on one of these tables on delete action.

Try

SQL
BEGIN TRY  
  BEGIN TRANSACTION  

   DELETE FROM usersmessages
   WHERE  messageid = 1

   DELETE FROM messages 
   WHERE  messageid = 1


  COMMIT TRANSACTION  
 END TRY  
 BEGIN CATCH  
  ROLLBACK TRANSACTION  
 END CATCH  
 
Share this answer
 
v2
SQL
begin transaction;

   declare @deletedIds table ( id int );

   delete t1
   output deleted.id into @deletedIds;
   from table1 t1
    join table2 t2
      on t2.id = t1.id
    join table3 t3
      on t3.id = t2.id;

   delete t2
   from table2 t2
    join @deletedIds d
      on d.id = t2.id;

   delete t3
   from table3 t3 ...

commit transaction;


Happy Coding :)
 
Share this answer
 
Please Read the DELETE Query Syntax

SQL
DELETE FROM table_name
WHERE some_column=some_value
 
Share this answer
 
Hi,

Your syntax is wrong here. Use like the following.

SQL
DELETE  FROM messages INNER JOIN usersmessages
WHERE messages.messageid= usersmessages.messageid and messages.messageid = 1



Thanks
 
Share this answer
 
Hi
Can you try the below query:

SQL
DELETE MESSAGES  FROM MESSAGES INNER JOIN USERSMESSAGES
ON MESSAGES.MESSAGEID= USERSMESSAGES.MESSAGEID WHERE MESSAGES.MESSAGEID = 1
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900