2

ストアド プロシージャへの入力として列名を指定した場合、すべてのデータベースからその列を使用してプロシージャとテーブル名のリストを取得する必要がありますか?

4

1 に答える 1

2

sql-server 2005+の場合、次を使用できます。

create procedure sp1
    @columnName varchar(30)
as
    select s1.name,'table' type
    from sys.objects s1 join sys.columns s2 on s1.object_id = s2.object_id
    where s2.name = @columnName  and s1.type = 'U'

    union

    select s1.name,'procedure' type
    from sys.procedures s1 join sys.sql_modules s2 on s1.object_id = s2.object_id
    and s2.definition like '%'+@columnName+'%'
于 2012-08-13T18:07:31.693 に答える