В T-SQL вы можете использовать переменную с командой USE - PullRequest
2 голосов
/ 04 февраля 2010

Я работаю над сценарием SQL, где мне нужно обращаться к имени базы данных в нескольких остановках. Этот скрипт будет использоваться для работы с разными базами данных, поэтому я хотел сохранить имя базы данных в переменной, поэтому вам нужно всего лишь изменить имя в одном месте скрипта.

Основная проблема, с которой я столкнулся в этом сценарии, связана с командой USE. Так выглядит код.

DECLARE @DBName varchar(50)
SET @DBName = '[master]'

USE @DBName

SQL не нравится это. Есть ли способ сделать это.

Спасибо за помощь.

Ответы [ 2 ]

0 голосов
/ 05 февраля 2013

То, как я это делаю, не очень элегантно, но прекрасно работает

if @DBName = 'DB1'
    <query with DB1>
else
    <query with DB2>
0 голосов
/ 04 февраля 2010

Вы можете сделать что-то вроде этого

declare @dbname varchar(250)
declare @Sql varchar(250)

set @dbname='PMDB'

SELECT @Sql ='select * from ' + @dbname + '.dbo.Account'


EXEC(@Sql)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...