次のコードを書きました。
Declare @DaataBaseName2 varchar(50)
set @DaataBaseName2 = 'LUNDB14644A01' -- @DaataBaseName
USE @DaataBaseName2 --LUNDB14644A01
GO
次のエラーを受け取りました:
メッセージ 102、レベル 15、状態 1、行 3
'@DaataBaseName2' 付近の構文が正しくありません。
なんで?
次のコードを書きました。
Declare @DaataBaseName2 varchar(50)
set @DaataBaseName2 = 'LUNDB14644A01' -- @DaataBaseName
USE @DaataBaseName2 --LUNDB14644A01
GO
次のエラーを受け取りました:
メッセージ 102、レベル 15、状態 1、行 3
'@DaataBaseName2' 付近の構文が正しくありません。
なんで?
動的 SQL を介してコードを実行する必要があります。SQL インジェクション攻撃につながる可能性があるため、動的 SQL には注意する必要があります。
以下は、動的データベースの使用方法の小規模なサンプルです。
Declare @DaataBaseName2 varchar(50),
@sql nvarchar(Max)
set @DaataBaseName2 = 'master' -- @DaataBaseName
set @sql = 'USE ' + @DaataBaseName2 + ';' + CHAR(13)
SET @sql = @sql + 'SELECT db_name()'
exec sp_executesql @sql
GO