• 查看数据库中的文件对象含有哪个字符串


     

    有没有试过因为写过多的存储过程,在变更表字段的时候,那些存储过程而烦恼的呢?

    下面这里就可以解决你的问题啦,他可以帮你找出那些存储过程含有你指定搜索的字符串。

    xtype 的意思:

    C =CHECK 约束
    D
    = 默认值或 DEFAULT 约束
    F
    =FOREIGNKEY 约束
    L
    = 日志
    FN
    = 标量函数
    IF= 内嵌表函数
    P
    = 存储过程
    PK
    =PRIMARYKEY 约束(类型是 K)
    RF
    = 复制筛选存储过程
    S
    = 系统表
    TF
    = 表函数
    TR
    = 触发器
    U
    = 用户表
    UQ
    =UNIQUE 约束(类型是 K)
    V
    = 视图
    X
    = 扩展存储过程

    SQL语句的内容:

    SET NOCOUNT ON
    declare @T_objs table
    (
    objname varchar(
    1000)
    )
    declare @T_objText table
    (
    objname varchar(max)
    )
    declare @T_result table
    (
    objname varchar(max)
    )
    insert into @T_objs select [name] from sysobjects
    where xtype='fn'
    declare @name nvarchar(
    1000)
    declare @sqlText varchar(max)
    set @sqlText=''
    set @name=''
    select top
    1 @name=objname from @T_objs
    while @@rowcount >0
    begin
    insert @T_objText exec sp_helpText @name
    select @sqlText
    =@sqlText+objname from @T_objText
    delete @T_objText
    insert into @T_objText select replace(replace(replace(@sqlText,
    char(13)+char(10),''),'',''),'','')
    --print replace(replace(replace(@sqlText,char(13)+char(10),''),'',''),'','')
    if exists(select * from @T_objText where objname like '%SearchText1%' and objname like'%SearchText2%')--多条件控制
    begin
    insert into @T_result select @name
    end
    set @sqlText=''
    delete @T_objs
    where @name=objname
    delete @T_objText
    select top
    1 @name=objname from @T_objs
    end
    select
    * from @T_result

    大家也可以将这条SQL语句写成一个函数或者存储过程的话,那就更方便使用啦。

    2012-09-07补充:

    如果数据库采用了架构的方式的话,就要在找对象的时候确认架构的UID了。

    select [name] from sysobjects where xtype='p' AND uid=[x]

    其中[x]代表你的构架UID

    2012-10-23补充:

    优化使用架构的方式查询:

    insert into @T_objs select b.[name]+'.'+a.[name] from sysobjects a JOIN sys.schemas b ON a.[uid]=b.[schema_id] where b.name='[x]' AND xtype='fn'
    

    替换SQL中的:

    insert into @T_objs select [name] from sysobjects where xtype='fn'
    

    其中[x]代表你的构架名称

  • 相关阅读:
    anaconda环境---ubuntu下重装
    算法---Face_Recognition配置实战篇
    算法---FaceNet+mtcnn的使用记录
    算法---FaceNet理论学习篇
    算法---FaceNet在Tf下的实战篇
    ubuntu系统---切换Py2.X与Py3.X版本
    anaconda环境中---py2.7下安装tf1.0 + py3.5下安装tf1.5
    Git---初入开源代码管理库的学习过程003
    day 87 Vue学习六之axios、vuex、脚手架中组件传值
    day 86 Vue学习之五DIY脚手架、webpack使用、vue-cli的使用、element-ui
  • 原文地址:https://www.cnblogs.com/magic_evan/p/2095653.html
Copyright © 2020-2023  润新知