As you know, semicolon is used as a statement terminator in almost all RDBMSs. However the usage of semicolon is optional in SQL Server except a few cases. Here are atleast the three cases where usage of semicolon is a must 1 At the start of the Common Table Expression 2 If the procedure name is GO ,to execute it use at the end of GO (ex EXEC GO; as shown in Fun with GO ) 3 At the end of Merge statement...(<a href="http://sqlserver-qa.net/blogs/t-sql/archive/2009/11/10/6099.aspx">read more</a>)<img src="http://sqlserver-qa.net/aggbug.aspx?PostID=6099" width="1" height="1">