问题标签 [sp-msforeachdb]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
163 浏览

sql-server - 对所有数据库中的所有表运行操作

我正在尝试创建一个 SQL Server 脚本,该脚本将一些操作应用于所有数据库中的所有表。如果遵守某些条件,我需要重命名一些表,否则截断表。

这是我的脚本

我遇到了一些错误,但我是 SQL Server 的新手,我不知道如何修复这个脚本。

有什么建议么?

非常感谢

0 投票
3 回答
4983 浏览

sql-server-2008 - 使用 sp_MSforeachdb 在数据库中“循环”并返回 1 个数据集

所以,我一直在努力解决我在好友网站上找到的代码:

移动数据库登录的 8 个步骤

我想在一个输出中生成数据库级别安全性、角色和显式权限语句,这样我就不会一遍又一遍地复制和粘贴,以便它们为服务器上的所有数据库运行(当然要减去 tempdb)。

如何使用表变量、临时表等修改我所拥有的,按原样工作但不方便,以便所有语句都在一个数据集中?

0 投票
1 回答
3217 浏览

sql-server - 如何省略系统数据库并允许 SQL Server 2008 代理作业超过 ERROR_NUMBER 208?

我创建了一个针对服务器上所有数据库运行的 SQL Server 2008 代理作业。我正在使用未记录的 MS 程序,sp_MSforEachDB. 我只指定要处理的某些数据库,当找到这些数据库时,如果ERROR_NUMBER = 208,我想创建一个表并处理以继续到下一个数据库。我还想省略系统数据库,这样表格就不会在系统数据库中创建。我虽然通过指定要处理的数据库的名称,但可以创建一个不存在的表。如果在特定数据库上设置了“焦点”,我在下面显示的代码有效。此外,当我运行它时,我在主数据库中创建了一个表,我不想这样做。我试图用我创建的代码做的是: 1. 选择 SQL 服务器上名称为“xyz_%”的所有数据库 2. 如果表“SESSIONS”存在,则删除所有早于 5 分钟的记录 3. 如果表“SESSIONS”不存在,然后创建它并继续处理 - 这就是我得到的地方208 error - invalid object because this table does not exist 当作业发现没有 Sessions 表时,作业停止并且不处理其他数据库。我需要处理 1 中的所有命名数据库。如果 SESSIONS 表不存在,我会收到一个 208 错误,提示“无效的对象名称'master.SchemaName.sessions'。如果我将'焦点'设置为没有会话表的数据库,我的代码将运行并创建表但我仍然收到错误 208 - Invalid object name 'master.SchemaName.sessions'。没有显示其他错误。

如果有人可以查看我的代码以了解我的问题出在哪里,那就太好了。

我已通过使用下面的 Try Catch 验证我收到了 208 错误。我在第二次尝试 Catch 时也收到错误 2760,表示指定的架构不存在或我无权访问。我是这台服务器的管理员。

我已经使用 SQL 几年了,我不认为自己是专家。我已经在 Google 上对此进行了研究,以得出下面的代码。任何帮助,将不胜感激。

0 投票
3 回答
1434 浏览

java - 在 Java 应用程序中执行“sp_msforeachdb”

嗨 StackOverflow 社区 :)

我来找你分享我的一个问题......

我必须提取SQL Server 实例的每个数据库中每个表的列表,我发现了这个查询:

它在 Microsoft SQL Server Management Studio 上完美运行,但是当我尝试在我的 Java 程序(包括 SQL Server 的 JDBC 驱动程序)中执行它时,它说它不返回任何结果

我的 Java 代码如下:

感谢任何愿意帮助我的人, 祝你有美好的一天:)

编辑 1:

我不确定 SQL Server 的 JDBC 驱动程序是否支持我的查询,所以我将尝试以另一种方式实现我的目标。

我想要得到的是SQL Server 实例上每个数据库的所有表的列表,输出格式如下:

所以现在我问有人可以帮助我通过 Java 的 JDBC for SQL Server driver 使用 SQL 查询来获得该解决方案。

我还要感谢Tim LehnerMark Rotteveel给我的快速答复。

0 投票
3 回答
1245 浏览

powershell - 数据集中的 sp_msforeachdb

有人能告诉我为什么下面的代码只从 DataSet(用于主数据库)返回一行,而不是为服务器上的每个数据库返回一行吗?

0 投票
3 回答
5916 浏览

sql-server - 如何在 sp_MSforeachdb 中指定 TABLE_SCHEMA 名称以使数据库脱机

我需要搜索具有特定前缀的某些数据库。找到这些数据库后,我需要检查某个模式是否存在以及是否不存在 - 使数据库脱机。我一直在尝试在 Google 上找到的各种建议,但没有任何效果。我有一个无法克服的错误。错误是“XYZ”不是一个公认的选项。如果我分离出代码,它运行良好,但是当我添加 sp_MSforeachdb 时,错误返回。

此代码工作正常:

0 投票
1 回答
1182 浏览

sql - 使用 sp_MSforeachdb 在所有数据库上使用 sp_helprotect

任何人都可以使用 sp_MSforeachdb 转换以下 SQL 查询吗?我正在使用 SQL Server 2005 SP4。谢谢!

0 投票
1 回答
1983 浏览

sql - Running a Stored Procedure on All Databases, and Saving All Results Into A Table

I'm trying to create a query in which I cycle through all the databases in a server, run a stored procedure on it, and save it to a results table.

This is what I have thus far:

What I'm hoping to accomplish from this code is to run the IC_PURCHASEORDER stored procedure over all of the databases in the server, and record the result of that into the created results table. After that, I would be able to e-mail those results off to a supervisor, and then drop the table, but that's a job for another day. I know there exists a syntax error in the IF statement, that results in the following error

Would it be possible to get some insight to what I'm trying to accomplish? Thanks!

0 投票
4 回答
310 浏览

sql - SQL 遍历所有表

我正在运行以下代码以从具有特定列的所有表中提取所有相关行。外部IF应该检查该列是否存在于该迭代的表中。如果不是,它应该完成该迭代并移动到下一个表。如果表有该GCRecord列,那么它应该检查该表是否会返回任何记录。如果没有要返回的记录,它应该结束该迭代并移动到下一个表。如果有记录,它应该在 SSMS 中显示它们。

它似乎有效,因为 SSMS 只返回具有有效条目的网格。我不明白的是:为什么我仍然收到这些错误?

编辑

使用建议后,我有这个:

返回此错误:

指的是这条线

更新

EXEC我尝试了不起作用的嵌套语句,但使用选定的答案我得到了我正在寻找的结果而没有错误。

0 投票
2 回答
4078 浏览

sql-server - 如何在同一个查询中同时使用 sp_msforeachtable 和 sp_msforeachdb?

有没有办法引用在“sp_msforeachdb”循环内运行的“sp_MSforeachtable”循环内的表?

例如,在以下查询中,“?” 总是引用数据库:

导致:

我想要类似的东西:

我应该改变什么?


解决了。按照 Sean 的建议,我使用了我的 ow 光标。但是 Ben Thul 建议的 @replacechar 解决方案正是我想要的。