Yo uso el siguientr procedimiento almacenado
Cita: ALTER PROCEDURE [dbo].[ProcExec] @cTabla nvarChar(200), @cCampos nVarchar(800)='*', @Condi nchar(1000) = ''
As
Begin
SET NOCOUNT ON
Declare @cSQL nVarchar(2000)
If LEN(@Condi) = 0
Set @cSQL = N'Select ' + @cCampos + N' From ' + @cTabla
Else
Set @cSQL = N'Select ' + @cCampos + N' From ' + @cTabla + N' Where ' + @Condi
EXEC sp_executesql @cSQL
End