Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to pass a database name as a parameter in SQL Server

USE master
GO

DECLARE @DbName nvarchar(MAX)
SET @DbName = N'DataBase'

ALTER DATABASE @DbName
SET SINGLE_USER WITH ROLLBACK IMMEDIATE

ALTER DATABASE @DbName SET OFFLINE WITH NO_WAIT
GO

ALTER DATABASE @DbName SET ONLINE
GO

ALTER DATABASE @DbName
SET MULTI_USER
GO

I know i can use EXEC but it's a bit ugly....

like image 890
AK_ Avatar asked Jun 09 '26 05:06

AK_


2 Answers

It is impossible to use DB name from variable.

Use Dynamic Querying, even if it is ugly.

like image 112
Oleg Dok Avatar answered Jun 10 '26 18:06

Oleg Dok


You can't use the database name in a variable.

You have several options:

  • Different DML scripts for each DB
  • Dynamic SQL
like image 34
Oded Avatar answered Jun 10 '26 19:06

Oded