Tuesday, September 6, 2011

Passing database name as parameter in sql server

There is a way to pass database name as NVARCHAR variable to the sql server stored procedures. Only the possible way to utilize this database name is through dynamic sql. There is no use to pass database name as parameter to function because there is no way to write dynamic sql inside function. sample code looks like:
 
CREATE PROCEDURE SPROC_SAMPLE(@DBName NVARCHAR(100))
AS
BEGIN
DECLARE @SCRIPT NVARCHAR(500)
SET @SCRIPT = 'SELECT * FROM [DbName]..TABLENAME'

SET @SCRIPT = REPLACE(@SCRIPT,'[DbName]',@DBName)
EXEC SP_EXECUTESQL @SCRIPT
END

EXEC SPROC_SAMPLE 'DatabaseName'

In the above scenario, while executing the procedure whatever database name given, procedure will execute on that database.

No comments:

Post a Comment