In your case, dynamic sql may actually be faster in the multipurpose SP of yours.CREATE PROCEDURE dbo.PPH_ADM_GET_LOOKUP_VALUES( @Reference_Code varchar(50) = NULL, @Key_Value VARCHAR(MAX) = NULL )AS SET NOCOUNT ONDECLARE @Sample TABLE ( kv VARCHAR(20), sqlstring VARCHAR(MAX) )INSERT @SampleSELECT 'country', 'SELECT Country_ID AS [value], Country_Name AS [description] FROM dbo.ADM_Country WITH (NOLOCK) WHERE Active_Ind = 1 Order by 2' union allSELECT 'PHONE_CODE', 'SELECT phone_ID AS [value], phone_Name AS [description] FROM dbo.ADM_Phone WITH (NOLOCK) WHERE Active_Ind = 1 Order by 2'DECLARE @SQL VARCHAR(MAX)SELECT @SQL = sqlstringFROM @SampleWHERE kv = @Reference_CodeEXEC (@sql)
N 56°04'39.26"E 12°55'05.63"