sql >> データベース >  >> RDS >> Sqlserver

SQL Server はストアド プロシージャ コードをどこに格納しますか?

    sys.sql_modules を使用します なぜなら definition nvarchar(max) です 長いコードを切り捨てないからです。

    INFORMATION_SCHEMA.ROUTINESROUTINE_DEFINITION 列は nvarchar(4000) のみです そのため、長い手順のテキストを表示しようとすると、切り詰められていることがわかります。

    これを使用して、任意のプロシージャ、ビュー、関数でテキストを検索します:

    SELECT DISTINCT
        o.name AS Object_Name,o.type_desc
        FROM sys.sql_modules        m 
            INNER JOIN sys.objects  o ON m.object_id=o.object_id
        WHERE m.definition Like '%'[email protected]+'%'
        ORDER BY o.type_desc,o.name 
    

    これを使用して、特定のプロシージャ、ビュー、関数のテキストを表示します:

    select * from sys.sql_modules where object_id=object_id('YourProcedure')
    


    1. String []パラメータをネイティブクエリに設定するにはどうすればよいですか?

    2. Sqlサーバー2008は日付をdd/MM/yyyyからMM/dd/yyyyに強制します

    3. TableNameとしてのMySqlParameter

    4. 個別のレコードをカウントするウィンドウ関数