Jef*_*ark 9 sql-server stored-procedures t-sql
我需要解决我遇到的问题,我需要一些帮助来了解 sp_msforeachdb 的工作原理以解决我的问题。
每次运行 sp_msforeachdb 时都会发生错误 Msg 102, Level 15, State 1, Incorrect syntax near '61'
我的代码示例如下:
EXEC SP_msforeachdb 'SELECT ''?'' AS Database
FROM ?.sys.objects
WHERE name like ''%aetna%''
Run Code Online (Sandbox Code Playgroud)
但是,我将什么查询作为 sp_msforeachdb 的参数并不重要。每次我都遇到同样的错误。我确实有一个以“61s1d”开头的数据库,所以我认为它的数据库名称有问题,但老实说,我不知道 sp_msforeachdb 的幕后情况。
注意事项。
我怎样才能克服这个问题?
Ken*_*her 17
首先不要使用 sp_msforeachdb 它有几个已知问题。您最好在此处和此处使用 Aaron Bertrand 的版本。
但是它使用游标、动态 SQL 和替换。您实际上可以使用 sp_helptext 查看代码。
EXEC sp_helptext sp_msforeachdb
Run Code Online (Sandbox Code Playgroud)
如果您使用此代码,它将解决您的一些问题。
EXEC SP_msforeachdb 'SELECT ''?'' AS Database
FROM [?].sys.objects
WHERE name like ''%aetna%''
Run Code Online (Sandbox Code Playgroud)
括号将是您提到的具体问题。但是,如果您有一个包含 [ 或 ] 的数据库,则会遇到问题。
| 归档时间: |
|
| 查看次数: |
3643 次 |
| 最近记录: |