Writing something like SELECT name FROM (SELECT * FROM Products) may look correct in SQL, however SQL Server throws an Incorrect syntax near ‘)’ that’s not user-friendly at all (Oracle though accepts this syntax). You can get it working in SQL Server also by naming the derived table i.e. change to the following: SELECT name FROM (SELECT * FROM Products) AS Products2.