1

このような動的SQLを書くと?

set @dynamicSQL='select '+@logName+'= name from '+@databaseName+'.sys.sysfiles where groupid=0'

うまくいきませんが、次のように書くと:

select @logName=name from sys.sysfiles where groupid=0;         

適切に動作し、次のようになります。

set @dynamicSQL='select name from '+@databaseName+'.sys.sysfiles where groupid=0'

正常に動作しますが、なぜでしょうか? 誰かが教えてくれたら感謝します。

4

1 に答える 1

2

解決策は次のとおりです。

set @dynamicSQL=N'select @logName= name from '+@databaseName+'.sys.database_files where type_desc=''LOG'''

exec sp_executesql @dynamicSQL,N'@logName nvarchar(100) output',@logName output 

name次に、動的ステートメントから取得できます。

于 2013-10-08T04:04:53.043 に答える