- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
是否有任何方法可以引用在“sp_msforeachdb”循环内运行的“sp_MSforeachtable”循环内的表?
例如,在以下查询中“?”始终引用数据库:
DECLARE @cmd VARCHAR(8000);
SET @cmd = 'USE ?; EXEC sp_MSforeachtable @command1="select db_name = DB_NAME(), db_foreach = ''?'', tb_foreach = ''?'' "'
EXEC sp_msforeachdb @command1 =@cmd
结果:
db_name db_forearch tb_foreach
ServerMonitor master master
我想要这样的东西:
db_name db_forearch tb_foreach
ServerMonitor master <TABLE_NAME>
我应该改变什么?
<小时/>已解决。按照 Sean 的建议,我使用了 ow 光标。但 Ben Thul 建议的 @replacechar 解决方案正是我正在寻找的。
DECLARE @cmd VARCHAR(8000);
SET @cmd = 'USE ^; EXEC sp_MSforeachtable @command1="select db_name = DB_NAME(), db_foreach = ''^'', tb_foreach = ''?'' "'
EXEC sp_msforeachdb @command1 =@cmd, @replacechar = '^'
最佳答案
查看 sp_msforeachtable 的参数。其中之一是@replacechar,默认情况下,它是一个问号(即?)。请随意传递另一个同样不可能出现在查询中的字符(可能是 ^)。
当然,如果我没有提到这一点,那就是我的失职,这取决于你想要做什么(我认为你想要在所有 table 上做的任何事情都可以通过这种方式实现), powershell 中有更容易阅读(和编写)的解决方案:
import-module sqlps -disablenamechecking;
$s = new-object microsoft.sqlserver.management.smo.server '.';
foreach ($db in $s.databases) {
foreach ($table in $db.Tables) {
$table | select parent, name; --merely list the table and database
}
}
关于sql-server - 如何在同一查询中同时使用 sp_msforeachtable 和 sp_msforeachdb?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27251989/
我想打印一些动态查询来对数据库中的所有表执行一个过程。这就是我到目前为止所写的 - EXEC SP_MSFOREACHTABLE ' IF EXISTS(SELECT * FROM INFOR
如何使用 sp_MSforeachtable 向每个表添加索引?它不断给出错误。 EXEC sp_MSforeachtable @precommand = 'declare @idx as char;
我知道 sp_msforeachtable 允许对所有表执行查询。 我有 100 个表,我想对 97 个表执行相同的查询。 我正在使用此查询:EXEC sp_MSForEachTable "DELET
我想使用 sp_msforeachtable 对数据库中的某些表执行一些操作。我使用 IF 语句来过滤表。但它没有给我正确的答案。如以下脚本所示,我使用 AdventureWorks 进行测试。我想对
我打算列出我的数据库中所有没有记录的表。 与大多数时候我使用 SP_MSforeachtable 一样,例如: EXEC sys.sp_MSforeachtable 'if (select Count
是否有任何方法可以引用在“sp_msforeachdb”循环内运行的“sp_MSforeachtable”循环内的表? 例如,在以下查询中“?”始终引用数据库: DECLARE @cmd VARCHA
我正在尝试编写此查询来查找具有特定列和特定值的所有表。这就是我到目前为止所做的 - EXEC sp_MSforeachtable @command1=' IF EXISTS (SELECT * FRO
我正在使用 SSIS 将一些测试数据加载到我们的数据仓库中,并且遇到了外键约束的老问题。我将删除/添加所有数据以查找本地测试环境中的数据问题。因此,此时我不太关心参照完整性......我遇到了这个方便
我正在尝试使用the undocumented system procedure sp_MSforeachtable 。但我需要将受影响的表限制为以“smp”开头且位于“dbo”架构中的表。我能够找到
我正在尝试使用 .dacpac 发布 SQL Server 数据库并将配置文件发布到 Azure SQL 数据库。我们已经使用本地 SQL Server 很长一段时间了,没有出现任何问题,现在我们正在
当我尝试在表上重建索引时: ALTER INDEX ALL ON [dbo].[Allocations] REBUILD 效果很好。 但是当我打电话时 EXECUTE sp_msForEachTabl
我想分析我的数据库,并通过执行 "sp_MSforeachtable 'EXECUTE sp_spaceused [?];';" 将每个表的结果放入 MS Excel 工作表中。从 ADODB 命令或
我是一名优秀的程序员,十分优秀!