Consider the following statement
CREATE TABLE #T (I INT,)
It will get executed without error
But when you use table variable as shown below
DECLARE @T TABLE(I INT,)
You get the following error
Msg 102, Level 15, State 1, Line 1 Incorrect syntax near ')'.
Why is extra comma giving error for table variable and not for temporary table?