sql-server - 호환성 - sql server 통계 정보 조회




SQL Server 2008에서 저장 프로 시저 및 테이블의 총 수를 계산하는 방법 (6)

다음 두 가지 쿼리를 사용할 수 있습니다.

select count(*) as TablesCount from sys.tables
select count(*) as ProceduresCount from sys.procedures

SQL Server 2008 R2에 데이터베이스 Test1 이 있습니다. 라이브 서버에서 거기에서 백업을 가져 와서 우리의 로컬 컴퓨터에서 Test2 로 복원하고 몇 가지 테이블과 절차를 추가했습니다.

Test2 를 실제 서버로 복원하면 테스트 2가 아닌 테스트 1 또는 SQL Server에서만 테이블 이름과 프로 시저 이름을 얻을 수있는 쿼리가 완전히 다른 데이터베이스로 취급됩니까?

그리고 Test1Test2 데이터베이스의 차이점 수만 알고 싶다면 쿼리는 무엇입니까?


다음 쿼리를 사용하십시오.

USE YOURDBNAME
SELECT COUNT(*) AS totalTable from information_schema.tables 
WHERE table_type = 'base table'  

select Count(*) AS TotalProc from sys.procedures

이 스크립트를 사용하십시오. switch case 문을 사용하지 않습니다.

USE [MyDatabase]
GO
select distinct type_desc as 'Type Description', Count from
(SELECT 'Count' = COUNT(*), type FROM sys.objects GROUP BY type) as dbstatistics 
left join sys.objects on dbstatistics.type = sys.objects.type ORDER BY Count desc
GO

이렇게하면 테이블과 저장 프로 시저 수를 알 수 있습니다.

SELECT 
    CASE TYPE 
        WHEN 'U' 
            THEN 'User Defined Tables' 
        WHEN 'S'
            THEN 'System Tables'
        WHEN 'IT'
            THEN 'Internal Tables'
        WHEN 'P'
            THEN 'Stored Procedures'
        WHEN 'PC'
            THEN 'CLR Stored Procedures'
        WHEN 'X'
            THEN 'Extended Stored Procedures'
    END, 
    COUNT(*)     
FROM SYS.OBJECTS
WHERE TYPE IN ('U', 'P', 'PC', 'S', 'IT', 'X')
GROUP BY TYPE

sys.objects 에서 데이터베이스의 모든 유형의 객체를 찾을 수 있습니다. 개체 수를 보려면 각 데이터베이스에서이 쿼리를 실행해야합니다.

here sys.objects 저장된 것에 대한 모든 정보를 찾을 수 있습니다.


자주이 블로그 에서 찾은이 스크립트를 사용합니다.

USE [MyDatabase]
GO
SELECT 'Count' = COUNT(*), 'Type' = CASE type 
                WHEN 'C' THEN 'CHECK constraints' 
                WHEN 'D' THEN 'Default or DEFAULT constraints' 
                WHEN 'F' THEN 'FOREIGN KEY constraints' 
                WHEN 'FN' THEN 'Scalar functions' 
                WHEN 'IF' THEN 'Inlined table-functions' 
                WHEN 'K' THEN 'PRIMARY KEY or UNIQUE constraints' 
                WHEN 'L' THEN 'Logs' 
                WHEN 'P' THEN 'Stored procedures' 
                WHEN 'R' THEN 'Rules' 
                WHEN 'RF' THEN 'Replication filter stored procedures' 
                WHEN 'S' THEN 'System tables' 
                WHEN 'TF' THEN 'Table functions' 
                WHEN 'TR' THEN 'Triggers' 
                WHEN 'U' THEN 'User tables' 
                WHEN 'V' THEN 'Views' 
                WHEN 'X' THEN 'Extended stored procedures' 
    END 

    FROM sys.objects 
    GROUP BY type 
    ORDER BY type 
GO

sys.objects 에 대한 정보에서 유형별로 수정할 수 있습니다.

또는이 참조 객체 카탈로그 뷰의 객체 로 이전 답변의 표와 절차에 대한 답변을 얻었으므로

SELECT count(*) AS MyTables FROM sys.tables
SELECT count(*) AS MyProcedures FROM  sys.procedures
SELECT count(*) AS MyTriggers FROM  sys.triggers
SELECT count(*) AS MyViews FROM  sys.views

희망이 당신에게 몇 가지 추가 도움말을 제공합니다


SELECT COUNT(*) FROM information_schema.tables WHERE table_schema = 'dbName';






sql-server-2008-r2