从存储过程中进行选择,例如: select * from sp_tables

发布于 2024-09-30 02:43:14 字数 35 浏览 2 评论 0原文

有没有办法简单地选择从 sp_tables 返回的结果?

is there a way to simply select the result returned from sp_tables?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

破晓 2024-10-07 02:43:14

不,没有。

但您可以尝试通过查询 information_schema 来替换 sp_tables。

例如:

sp_tables 'T_Raum'

您可以用以下内容替换:

SELECT 
TABLE_CATALOG AS TABLE_QUALIFIER, 
TABLE_SCHEMA AS TABLE_OWNER, 
TABLE_NAME, 
CASE TABLE_TYPE
        WHEN 'BASE TABLE' THEN 'TABLE'
        ELSE TABLE_TYPE
END AS TABLE_TYPE, 
NULL AS REMARKS 

FROM  INFORMATION_SCHEMA.TABLES

WHERE TABLE_TYPE != 'VIEW'
    AND TABLE_NAME = 'T_Raum'

我不知道 sp_tables 到底做什么,或者您需要它做什么,但至少在这种情况下,它似乎执行上述模式查询。

No there isn't.

But you could try to replace sp_tables by querying the information_schema.

For example:

sp_tables 'T_Raum'

You can substitute with this:

SELECT 
TABLE_CATALOG AS TABLE_QUALIFIER, 
TABLE_SCHEMA AS TABLE_OWNER, 
TABLE_NAME, 
CASE TABLE_TYPE
        WHEN 'BASE TABLE' THEN 'TABLE'
        ELSE TABLE_TYPE
END AS TABLE_TYPE, 
NULL AS REMARKS 

FROM  INFORMATION_SCHEMA.TABLES

WHERE TABLE_TYPE != 'VIEW'
    AND TABLE_NAME = 'T_Raum'

I don't know what exactly sp_tables does, or what you need it for, but at least in this case, it seems to do the above schema query.

﹏雨一样淡蓝的深情 2024-10-07 02:43:14

如果您调用 sp_tables,您获得的结果SELECT 语句的结果。

在这方面,它与返回结果集的任何存储过程没有什么不同。

If you call sp_tables, the result you get is the result of a SELECT statement.

In that respect, it is no different than any store procedure that returns a result set.

情痴 2024-10-07 02:43:14

如果您的意思是要过滤该存储过程返回的结果集,那么根据您要过滤的内容,您可以将参数传递给该存储过程(例如@table_name 参数,它支持通配符)。查看 sp_tables 上的 BOL 参考

或者,您需要插入结果放入临时表并从中进行选择。

或者最后,根据您的需要,您可以直接查询 sys 表。如果只对表格感兴趣:

SELECT *
FROM sys.tables
WHERE...

If you mean you want to filter the resultset returned by that sproc then depending on what you want to filter on, you can pass in params to that sproc (e.g. @table_name parameter, which supports wildcards). Check out the BOL ref on sp_tables

Alternatively, you will need to insert the results into a temp table and select from that.

Or finally, depending on what you want, you could query the sys tables directly. If only interested in tables:

SELECT *
FROM sys.tables
WHERE...
瘫痪情歌 2024-10-07 02:43:14

如果要从每个表中进行选择,可以使用未记录的 sp_msforeachtable 命令:

sp_msforeachtable 'SELECT * FROM ?'

? 是一个通配符,表示当前表名,命令需要是用单引号括起来的字符串,就像在其他动态 SQL 中一样。

If you want to select from each table, you can use the undocumented sp_msforeachtable command:

sp_msforeachtable 'SELECT * FROM ?'

The ? is a wildcard that indicates the current table name, and the command needs to be a string enclosed in single quotes just like in other Dynamic SQL.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文