注册 登录
编程论坛 SQL Server论坛

求修改sql里面的一个公司名称

dune 发布于 2015-10-28 10:53, 1281 次点击
如题,自己研究了好久一直找不到那个表在哪里。附表为查找出来可能是公司名的表,
只有本站会员才能查看附件,请 登录


[此贴子已经被作者于2015-11-5 07:56编辑过]

9 回复
#2
Maick2015-10-28 11:51
,好牛我也不知道在哪个表
#3
tlliqi2015-10-28 15:00
找不到那个表在哪里?
#4
hu9jj2015-10-28 19:42
楼主你好!请告诉你在哪?看我们哪位有空时去帮你找找看。
#5
hu9jj2015-10-28 19:43
要么发动坛友人肉一下,也许能找到你要的表。
#6
mxbing19842015-10-29 08:40
Create Procedure sp_Search(@Val Varchar(4000))
As
Begin
    Declare @TBName Varchar(200)
    Declare @ColName Varchar(200)
    Declare @Rst int
    Declare @Sql NVarchar(4000)
    Declare @TB Table(TbName Varchar(200),ColName Varchar(200))
   
    Declare myCur Cursor For
        Select A.Name,B.Name From sys.objects A Inner join sys.columns B on a.object_id=b.object_id
            Where A.Type='U' And system_Type_ID in(35,99,167,175,231,239)

    Open myCur;

    Fetch Next From myCur Into @TBName,@ColName
    While @@FETCH_STATUS = 0
    Begin
        Set @Sql='If Exists(Select * From ['+@TBName+'] Where ['+@ColName+'] Like @Val)'
        Set @Sql=@Sql+'Set @Rst=1 '
        Set @Sql=@Sql+'Else '
        Set @Sql=@Sql+'Set @Rst=0 '
        Exec sp_Executesql @sql,N'@Val Varchar(4000),@Rst int output',@Val,@Rst output
        If(@Rst=1)
            Insert Into    @TB values(@TBName,@ColName)  
        Fetch Next From myCur Into @TBName,@ColName
    End
    Close myCur
    DeAllocate myCur
   
    Select * From @TB
End
/*
测试:
这样就能搜到你的公司在哪个表了,然后去更新吧,速度跟表名,这段和数据量都有关系
Exec sp_search '公司名称'
Exec sp_search '%公司名称%'
以上搜索包含的字段数据类型为Char,Varchar,Text,NChar,NVarchar,NText
思路:
先查询出所有表所有字符型栏位,然后每个表每个栏位查询值是否等于@Val,如果等则保存表名和字段名,最后返回结果
*/
#7
Maick2015-10-29 11:16
回复 6楼 mxbing1984
#8
半夏雨巷2015-10-29 12:03
回复 楼主 dune
在对应数据库名称展开,下面有“表”,再次展开,在需要修改的表名称上点击“右键”-设计-修改为自己想修改的名称-空白处点击一下-Ctrl+S进行保存
#9
mxbing19842015-10-29 14:03
回复 8楼 半夏雨巷
比如,我们数据库里有上千个表,你要先找到存储公司名称这个表是哪个?除了跟踪,就是暴力的搜
#10
dune2015-11-03 20:18
回复 6楼 mxbing1984
版主,你回复的那个代码在哪里添加要查找的公司名啊?谢谢!附图为我找出了意思公司名的表,但不知怎么修改,如有空能加我qq么?32709876
只有本站会员才能查看附件,请 登录
1