问题标签 [sp-msforeachtable]

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 投票
4 回答
39271 浏览

sql-server - 从 sp_msForEachTable 运行时,由于 QUOTED_IDENTIFIER ALTER INDEX 失败

当我尝试在表上重建索引时:

效果很好。

但是当我打电话

我到达同一张桌子,但失败了:

消息 1934,级别 16,状态 1,第 2 行
ALTER INDEX 失败,因为以下 SET 选项的设置不正确:'QUOTED_IDENTIFIER'。验证 SET 选项对于索引视图和/或计算列上的索引和/或过滤索引和/或查询通知和/或 XML 数据类型方法和/或空间索引操作是否正确。


并确认它是同一张桌子:

这给出了结果:

我没有做错什么?


注意

工作正常!

0 投票
1 回答
1592 浏览

sql - 从所有表中复制,插入到所有表中(sp_MSforeachtable 替代方案)

我决定分享我尝试将所有表中的数据复制到不同模式中的同名表中的经验。我相信我的经验可以帮助其他人在不使用不受支持且坦率有限的sp_MSforeachtable.

目标:将数据库中所有表的数据复制到具有不同架构的同名表

关于 sp_MSforeachtable. 大多数时候,当人们在 SO 中询问有关此存储过程的问题时,会有一些回复或另一种说法是我们不应该使用不受支持的功能。这根本不是真的,我们不应该做的是基于不受支持的功能的实践和设计决策,主要是因为它们可能会消失。但是在某个特定的时间点,如果存在不受支持的功能,并且完全符合我们当时需要做的事情,一次性的风格,那么就认为自己很幸运,一定要使用它,只是要小心意外行为。使用此类功能时,最好坚持简单的操作,其输出可以快速轻松地验证。

话虽如此,而且由于存在一些实际限制sp_MSforeachtable,我提出了一种不同但不太复杂的方法来针对我们数据库中的所有(或特定)表执行语句,并且我以我的问题为例。

0 投票
2 回答
1972 浏览

sql - 如何使用 sp_MSforeachtable 执行多行查询

如何使用 sp_MSforeachtable 为每个表添加索引?它不断给出错误。

一个这样的错误:

我尝试将声明放在命令中,但随后出现此错误:


这是修复语法错误的更新尝试,也包含测试 SQL,但它仍然给出了奇怪的错误。我最终用存储过程解决了这个问题,并为每个表调用了存储过程。

这适用于大约两打表,然后会出现奇怪的错误,例如

消息 1934,级别 16,状态 1,第 9 行 CREATE INDEX 失败,因为以下 SET 选项的设置不正确:'QUOTED_IDENTIFIER'。验证 SET 选项对于索引视图和/或计算列上的索引和/或过滤索引和/或查询通知和/或 XML 数据类型方法和/或空间索引操作是否正确。

所以我最终使用了不同的策略并创建了一个存储过程来创建索引:如何在存储过程中创建索引?

0 投票
0 回答
272 浏览

sql - sp_MSforeachtable 滥用(需要修改)

最近有人使用 入侵了我们的数据库sp_MSforeachtable,如果我是对的,那么进行多行查询。

现在我的问题是我如何修改sys.sp_MSforeachtable,他正在使用@command1和其他命令来执行查询以删除我们的表。

然后我的 SQL Profiler 显示:

谁能告诉我如何保护这些东西?SQL Profiler 向我显示应用程序名称是 PHP5,所以可能是注册页面或登录面板注入..

0 投票
1 回答
698 浏览

sql - 无法使用 sp_MSforeachtable 绑定获取多部分标识符

我正在使用sp_MSForeachtable检索所有表的列名并将列名连接到一个字符串中。我正在使用以下查询。我已经通过单个表的变量执行了相同的提供参数并且工作正常,但是当从 SP 执行时,它失败并出现错误“无法绑定多部分标识符“dbo.TableNm”。

我认为该错误可能与在不同数据库中有多个具有相同名称的表有关,所以我尝试预先修复数据库,但我仍然得到相同的错误。

我会继续尝试,但我的想法已经不多了。有什么想法吗?

0 投票
1 回答
235 浏览

sql-server - 加入来自 sp_MSForEachTable 的查询

我正在使用以下查询来获取用户上次更新表的时间:

但是在结果窗口中,我得到了一个表格,每个结果都有一行。有什么方法可以将它们作为唯一查询加入,以便我可以对结果进行排序?

我正在使用 SQL Server 2008 R2 和 Microsoft SQL Server Management Studio。

0 投票
2 回答
4078 浏览

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

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

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

导致:

我想要类似的东西:

我应该改变什么?


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

0 投票
1 回答
449 浏览

sql-server - sp_msforeachtable 对变量执行操作

我试图弄清楚如何使用 sp_msforeachtable 对与存储在另一个表中的变量/表名称匹配的所有表和变量执行操作

IE

我有一个包含 3 列的表:表、变量、操作

我正在尝试使用 sp_MSforeachtable 查看哪些表和变量匹配,如果匹配,则对表执行该操作。

  1. 如何在 sp_MSforeachtable 语句中调用变量名?我知道用吗?对于表名,但不确定如果变量名=变量名然后执行 X

  2. 有没有其他方法可以在不使用这个无证 SP 的情况下做到这一点?

生病尝试更好地解释:

我正在尝试从一堆表格中清除个人信息......我有一个看起来像这样的表格(不确定如何格式化表格,所以想象每个条目都是单独的行,所以第一行是名称,A,并设置为'')

变量
名称
电话号码
名称


A
A
B

操作
设置为 ''
设置为 '555-555-5555'
设置为 ''

等等

然后我有一个充满表的数据库......在表 A 上,我希望我的代码将变量 'Name' 的所有行设置
为 '' (blank)
,并将电话号码设置为 '555-555-5555'
等。然后转到表 B 并做同样的事情,依此类推

0 投票
1 回答
549 浏览

sql-server - SQL Server sp_msforeachtable

我在使用sp_msforeachtableSQL Server 存储过程时遇到问题。

我想EXECUTE使用以下 SQL 查询在一个表中输出语句:

这会引发错误

字符串或二进制数据将被截断

对于每张桌子。

附加信息:表“DaneOSpuscie”只有两列:数据库名称、varchar 类型的表名称。

0 投票
0 回答
245 浏览

sql-server - sp_MSforeachtable 过程的替代品是什么

sp_MSforeachtableMicrosoft 为SQL Server 较新版本上的(不推荐使用的)过程提供的替代解决方案是什么?