2016-05-05 15 views
-6

データベースがあります。 私は後で含まれていました。 このデータベースはどのように知っていますか?ツールはありますか?データベース分析と理解テーブル

すべてのテーブルを1つの画面に表示しますか? 関係はありますか? など

注:DBのSQL Serverの

ありがとうございました。

+1

「SQL Server Management Studio」で「新しいデータベースダイアグラム(あなたのテーブルとそれらの間の関係を描きます) –

+1

データベースを知っている人と話をすることを考えましたか? –

答えて

1

あなたに役立ついくつかのテーブルとコマンドがあります。

は、データベースのER図を取得するには:

は、新しいデータベースダイアグラムを作成し、あなたがのために 関係を確認するテーブルが含まれています。

データベース内のすべてのテーブルを知っている:

SELECT name Table FROM sys.objects WHERE type = 'U' 

データベース内のすべてのストアドプロシージャ知っている:表に関連するスキーマ、contraintsおよび依存関係を知ることが

SELECT name Procedure FROM sys.objects WHERE type = 'P' 

を:

EXEC sp_help <tablename> 

別の手順私は数年前に1つまたは複数のキーワードの依存関係をチェックするために書いた:

/****** Object: StoredProcedure [dbo].[FindObjectsByKeywords] Script Date: 8/25/2015 2:36:31 PM ******/ 
SET ANSI_NULLS ON 
GO 
SET QUOTED_IDENTIFIER ON 
GO 
-- ============================================= 
-- Author:  Kunal Chitkara 
-- Description: Find dependencies of the delimited keywords entered in the first input. 
--    Second input specifies the delimiter used, default being comma. 
--    This procedure is dependent upon the utility function 
-- Test Run: EXEC FindObjectsByKeywords @searchString = 'UserId,InstanceID', @delimiter = ',' 
-- ============================================= 
ALTER PROCEDURE [dbo].[FindObjectsByKeywords] 
    @searchString NVARCHAR(MAX) = '', 
    @delimiter NCHAR(1) = ',' 
AS 
BEGIN 

    BEGIN TRY 

     IF (@searchString = '') 
      RAISERROR ('Invalid input', 16, 2) 

     DECLARE @iterator INT = 1, 
       @searchCount INT = 0 

     SELECT value SearchString, ROW_NUMBER() OVER (ORDER BY value) Sort_Order 
     INTO #SearchStrings 
     FROM [dbo].[stringlist_to_table] (@searchString, @delimiter) 

     SELECT @searchCount = MAX(Sort_Order) 
     FROM #SearchStrings 

     DECLARE @Result TABLE 
     (
      Dependency NVARCHAR(256), 
      Type NVARCHAR(120), 
      KeyWords NVARCHAR(MAX) 
     ) 

     WHILE (@iterator <= @searchCount) 
     BEGIN 
      SELECT @searchString = SearchString 
      FROM #SearchStrings 
      WHERE Sort_Order = @iterator 

      INSERT INTO @Result (Dependency, Type, KeyWords) 
      SELECT DISTINCT so.name, sysObj.type_desc, @searchString 
      FROM sysobjects so 
      INNER JOIN syscomments sc ON sc.id = so.id 
      INNER JOIN sys.objects sysObj ON sysObj.object_id = so.id 
      WHERE CHARINDEX(@searchString, sc.text) > 0 
      ORDER BY name 

      SET @iterator = @iterator + 1; 
     END 

     IF EXISTS (SELECT * FROM @Result) 
     BEGIN 
      SELECT 
       P.Dependency, 
       P.Type, 
       STUFF 
       (
        (
         SELECT ',' + KeyWords 
         FROM @Result M 
         WHERE M.Dependency = P.Dependency AND M.Type = P.Type 
         ORDER BY KeyWords 
         FOR XML PATH('') 
        ), 1, 1, '' 
       ) AS KeyWords 
      FROM @Result P 
      WHERE P.Dependency != 'FindObjectsByKeywords' 
      ORDER BY KeyWords, Dependency 

     END 
     ELSE 
      PRINT 'No dependencies of the input keywords found.' 

     DROP TABLE #SearchStrings 
    END TRY 
    BEGIN CATCH 
     IF (ERROR_STATE() = 2) 
     RAISERROR ('Invalid input. Make sure you enter at least one keyword. More keywords can be entered in the first delimited parameter', 16, 1); 
    END CATCH 
END