gpt4 book ai didi

sql - 如何从SQL Server主数据库中找到任何数据库中任何表的列数?

转载 作者:行者123 更新时间:2023-12-04 18:22:55 24 4
gpt4 key购买 nike

如果我知道数据库名称和表名称,如何从sql server master数据库中找到表的列数?

查找任何数据库表的列数的最快方法是什么?

您如何看待该查询的性能?

select count(*) from SYSCOLUMNS where id=(select id from SYSOBJECTS where name='Categories')

我需要支持sql server 2000及更高版本。

最佳答案

它可能会有所不同,具体取决于SQL Server的版本,但这适用于2005年:

SELECT
COUNT(*)
FROM
<database name>.sys.columns
WHERE
object_id = OBJECT_ID('<database name>.<owner>.<table name>')

在2000年:
SELECT
COUNT(*)
FROM
<database name>.sysobjects o
INNER JOIN <database name>.syscolumns c ON
c.id = o.id
WHERE
o.name = '<table name>'

如果在不同的所有者下可能有多个具有相同确切表名的表,则需要考虑这一点。我忘了sysobjects中的列名让我望而却步。

更新SQL Server和ANSI符合性的新版本:
SELECT COUNT(*)
FROM
<database name>.INFORMATION_SCHEMA.COLUMNS
WHERE
TABLE_SCHEMA = '<table schema>' AND
TABLE_NAME = '<table name>'

关于sql - 如何从SQL Server主数据库中找到任何数据库中任何表的列数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1852074/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com