You can use dynamic SQL I mean first check the version Then build your SQL statement using a string variable, for example nvarchar(max) Then execute it by sp_executeSQL I think following script can work for this task -- check for sql server version declare @sql nvarchar(max) if (select cast(left(cast(serverproperty('productversion') as varchar), 4) as decimal(5, 3))) >= 10 set @sql = N'CREATE unique nonclustered index ix1_table ON [table] (column1, column2) WHERE column1 is not null and column2 is not null' ELSE set @sql = N'CREATE nonclustered index ix1_table ON [table] (column1, column2)' exec sp_executeSQL @sql