0

多数の SQL スクリプトを含むフォルダーから SQL スクリプトを実行しようとしています。これらのスクリプトは完全なデータベースを作成するので、スクリプトを順番に実行したいので、このコードを書き、それをスクリプトに配置しました。

:r c:\Scripts\CREATE_TABLE1.sql -- sql file to create first table
:r c:\Scripts\CREATE_TABLE2.sql -- sql file to create second table 
:r c:\Scripts\CREATE_TABLE3.sql -- sql file to create third table

正常に動作しており、フォルダー名を動的にする必要があるだけです。これにより、上部に変数を作成してフォルダー名を簡単に変更し、それをすべてのファイル名で使用できます。いくつかのオプションを調べましたが、あまり見つけられず、このようなものになりました。しかし、これはうまくいきません。

Declare @FolderName varchar(100)
set @FolderName='C:\Scripts\'
:r @FolderName+'CREATE_TABLE1.sql -- create first table
:r @FolderName+'CREATE_TABLE2.sql -- create second table
:r @FolderName+'CREATE_TABLE3.sql -- create third table

ただし、フォルダー名の後の最初の r コマンドの近くで構文が正しくないというエラーがスローされます。誰かがそれを修正する方法または回避策を教えてください。

4

1 に答える 1

1

setvar& $();を使用できます。

:setvar FolderName "C:\Scripts"
:r $(FolderName)\CREATE_TABLE1.sql'
:r $(FolderName)\.....
于 2013-01-08T13:46:05.757 に答える