IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[foo_IdGetTestSetupObject]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[foo_IdGetTestSetupObject] GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[foo_IdGetTestSetupObject]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N'CREATE FUNCTION [dbo].[foo_IdGetTestSetupObject] ( @TestObjectName varchar(50) ) RETURNS int AS BEGIN return isnull((select tso.TestSetupObjectId from [dbo].[TestSetupObjects] as tso inner join [dbo].[TestObjects] as tobj on tso.TestObjectId = tobj.TestObjectId where (tobj.Embedded = 1 or tobj.SysBuilt = 1) and tobj.TestObjectName = @TestObjectName), 0) END ' END GO