2

一部またはすべてのパラメーターがデータ型を持つ SQL Server データベース内のすべてのストアド プロシージャの名前を返すクエリはありますか?varcharすべてのデータベース テーブルを から に変更し、変更するストアド プロシージャがたくさんあるため、変更できvarcharますnvarchar。それなら丸一日かかるかもしれないので、助けてください

4

3 に答える 3

2

確かに - これを試してください:

SELECT
    ProcedureName = pr.Name,
    ParameterName = p.Name,
    TypeName = t.Name
FROM 
    sys.procedures pr
INNER JOIN 
    sys.parameters p ON p.object_id = pr.object_id
INNER JOIN 
    sys.types t ON p.system_type_id = t.system_type_id
WHERE   
    t.Name = 'varchar'

また、タイプ (にchar変換する必要があるnchar) およびtext( に変換する必要がある)のパラメーターを検索することもできますntextnvarchar(max)textntext

于 2013-07-02T05:03:29.237 に答える
2

これを試してみてください -

SELECT
      [procedure_name] = SCHEMA_NAME(o.[schema_id]) + '.' + o.name
    , parameter_name = p.name
FROM sys.objects o WITH(NOWAIT)
JOIN sys.parameters p WITH(NOWAIT) ON p.[object_id] = o.[object_id]
WHERE TYPE_NAME(p.user_type_id) = 'varchar'
    AND o.[type] IN ('P ', 'X ', 'PC', 'RF')
于 2013-07-02T05:39:35.830 に答える