繁体   English   中英

SQL:使用 INFORMATION_SCHEMA.TABLES 时如何指定数据库名称和服务器名称?

[英]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 ---.

没有枚举所有数据库的所有表的表或视图,您必须显式指定数据库:

  1. 直接查询

    SELECT COUNT(1) AS TABLECOUNT FROM [dbname].INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'dbo' AND TABLE_NAME = 'CALCULATION_SCHEDULE' ;
  2. 通过“使用”

     USE [dbname] SELECT COUNT(1) AS TABLECOUNT FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'dbo' AND TABLE_NAME = 'CALCULATION_SCHEDULE' ;
  3. 在您的连接字符串中


关于服务器名称,只能通过系统变量,如@@SERVERNAME 或 SERVERPROPERTY('ServerName'):

WHERE TABLE_SCHEMA = 'dbo'
AND TABLE_NAME = 'CALCULATION_SCHEDULE'   
AND SERVERPROPERTY('ServerName') = 'YourServer' ;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM