SQL Serverで "use"ステートメントでローカル変数を使用したい。私は検索しましたが、適切な解決策を得られませんでした。ローカル変数をSQL Serverの "use"ステートメントと共に使用する
declare @var varchar(100)
set @var = 'DB1'
use @var
SQL Serverで "use"ステートメントでローカル変数を使用したい。私は検索しましたが、適切な解決策を得られませんでした。ローカル変数をSQL Serverの "use"ステートメントと共に使用する
declare @var varchar(100)
set @var = 'DB1'
use @var
次のように試してみてください、
DECLARE @var VARCHAR(100)
,@SQL NVARCHAR(max) = ''
SET @var = 'DBRND'
SET @sql = 'select name From ' + @var + '.sys.procedures'
EXEC SP_EXECUTESQL @SQL
「DB1」は動的クエリ –
のセッション内でのみアクセス可能であることに言及する価値があります。これは機能しています。しかし、それは私の問題を解決しません。 私はパラメータとしてデータベース名をとり、そのデータベースのすべてのリストプロシージャを印刷するプロシージャを作成しています。 sys.proceduresテーブルから必要な情報を取得しています。 しかし、私は "use"ステートメントの中でSPにパラメータとして渡すデータベース名の使い方につきました。 –
私の投稿を編集しました。今すぐ試してみてください – StackUser
'use'は、データベース名ではなく、文字列を取ります。 – thebjorn
[SQLステートメント変数の複製](http://stackoverflow.com/questions/1037174/sql-use-statement-with-variable) –
動的SQLステートメントまたはハードコードステートメントを使用できます。 –