[英]How do I access INFORMATION_SCHEMA.TABLES on a specific database
[英]SQL: When using INFORMATION_SCHEMA.TABLES How do I specify a database name and a server name?
在下面的代码中,我可以指定要使用表名和表架构查询的表名和架构。 如何指定要查询的数据库名称和服务器名称?
我尝试过 DATABASE_NAME、DB_NAME 和 SERVER_NAME。 他们都没有工作。
SELECT COUNT(1) AS TABLECOUNT FROM INFORMATION_SCHEMA.TABLES WHERE
TABLE_SCHEMA = 'dbo' AND TABLE_NAME = '[TABLE_NAME]
以下是选择数据库、表和服务器名称的方法:
SELECT COUNT(1) AS TABLECOUNT, @@SERVERNAME as 'serverName' FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'dbo' AND TABLE_NAME = 'CALCULATION_SCHEDULE'
and @@SERVERNAME ='xx' and TABLE_CATALOG ='database name'
单击此处了解有关 serverName 的更多信息
您需要使用TABLE_CATALOG
来传递数据库名称。 在 SQL Server 中,此列包含包含该表的数据库名称,如下所示。
SELECT COUNT(1) AS TABLECOUNT FROM INFORMATION_SCHEMA.TABLES WHERE
TABLE_SCHEMA = 'dbo' AND TABLE_NAME = 'CALCULATION_SCHEDULE'
AND TABLE_CATALOG = '<Your Database Name>'
您也可以直接传递服务器名称和数据库名称,如下所示。
SELECT * FROM [ServerName].[DatabaseName].INFORMATION_SCHEMA.TABLES where ---.
没有枚举所有数据库的所有表的表或视图,您必须显式指定数据库:
直接查询
SELECT COUNT(1) AS TABLECOUNT FROM [dbname].INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'dbo' AND TABLE_NAME = 'CALCULATION_SCHEDULE' ;
通过“使用”
USE [dbname] SELECT COUNT(1) AS TABLECOUNT FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'dbo' AND TABLE_NAME = 'CALCULATION_SCHEDULE' ;
在您的连接字符串中
关于服务器名称,只能通过系统变量,如@@SERVERNAME 或 SERVERPROPERTY('ServerName'):
WHERE TABLE_SCHEMA = 'dbo'
AND TABLE_NAME = 'CALCULATION_SCHEDULE'
AND SERVERPROPERTY('ServerName') = 'YourServer' ;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.