We need to use DynamicSQL approach
CREATE PROCEDURE usp_PassTableVariable @table_name SYSNAME
AS
BEGIN
DECLARE @SQL NVARCHAR(MAX)
SET @SQL = 'SELECT *
FROM '+ @table_name
EXEC sp_executesql @SQL
END
OR
CREATE PROCEDURE usp_PassTableVariable @table_name VARCHAR(100)
AS
BEGIN
DECLARE @SQL NVARCHAR(MAX)
SET @SQL = 'SELECT *
FROM '+ @table_name
EXEC sp_executesql @SQL
END
Execute the store procedure:
EXEC usp_PassTableVariable '[dbo].[tblLocation]'
Result LocationID Latitude Longitude
1 26.457904 80.320663
Hope this helps