lunedì 7 febbraio 2011

Passare il Nome di un DB come parametro in una Stored procedure

Ecco una cosa che tenicamente serve ma che difficilmente ci capita di realizzare.

Supponiamo di aver realizzato una porzione di logica all'interno di un DB (in sql server) supponiamo che questa logica sia "relativa" ad due particolari DB che per
esigenze hanno nomi differenti per ambienti differenti.

L'esigenza quindi è quella di poter modificare dinamicamente il nome dei DB passandoli come parametri.

CREATE PROCEDURE Test
@DBNAME_master sysname
AS
BEGIN
DECLARE @command varchar (300);
SET @command = 'SELECT * FROM ' + @DBNAME + 'dbo.Table_1';
exec (@command)
END
GO


In questo esempio non è difficile intuire che cosa avviene. Tuttavia questo implica uno sforzo decisamente elevato nella realizzazione di tutta la stored.

Nessun commento: