У меня есть база данных SQL 2008, которая хранится в том же экземпляре, но эта база данных создается пользователем, а имя хранится в таблице SQL. Как написать отборное заявление с использованием динамического SQL или есть другой способКак выбрать из базы данных с использованием динамической переменной
Так, например:
Основная база - MyDB
базы данных пользователя - userDB (это хранится в myDB.dbo.tblUserDatabase)
userDB имеет таблицу с именем tblUserReports
Я хочу написать что-то вроде этого в динамическом SQL:
SELECT * FROM userDB.dbo.tblUserReports
Так пытался:
declare @dbUser varchar(50)
set @dbUser = (SELECT strDBName FROM myDB.dbo.tblUserDatabase)
SELECT * FROM @dbUser.dbo.tblUserReports
Используйте 'QUOTENAME (@dbUser)' для небольшой дополнительной защиты. –
Хорошая точка. Спасибо. Отредактировано по вашему предложению. –