数据量较小,可以直接用like语句;反之,建议使用全文索引。

解决方案 »

  1.   

    UP TO libin_ftsafe(子陌红尘)
      

  2.   

    现在有一个存在1000多个表的数据库,我不楚这个数据库的结构,我想测试这个软件是怎样建立数据库的,所有想在应用程序中输入一个记录,在整个数据库中查询到包含这个记录的数据表.目前想建立一个临时表,访问sysobjects表,把所有的用户表都存在这个临时表中,然后一个表一个表的去查询.以上问题用什么方法好呢,目前觉得可能用全文检索反而更慢.因为填充很慢,对数据库的每一列都进行一次查询好了.
      

  3.   

    ---跟踪程序的运行就可以了.
    开始--程序--MS SQLSERVER
    --事件探察器(SQL Profiler)
    --文件
    --新建--跟踪...
    --设置要跟踪的服务器的信息(连接服务器)--确定
    --设置跟踪的项目...
    --然后数据库的调用情况就会显示出来在跟踪项目设置中,如果不熟悉的话,一般用默认设置
    筛选项目有几个可以注意一下:1.DatabaseName 同于你要监测的数据库名(不过这个好像不起作用,我的电脑上设置无效)
    2.DatabaseID   同于你要检测的数据库的dbid,可以用 select db_id(N'你要监测的库名')得到dbid
    3.ObjectName   同于你要监测的对象名,例如表名,视图名等
    4.ObjectID     同于你要监测的对象的id,可以用 select object_id(N'你要监测的对象名')得到id
    5.Error        同于错误,如果经常出现某个编号的错误,则针对此错误号
    6.Seccess      同于0,失败,1,成功,如果是排错,就过滤掉成功的处理
      

  4.   

    --如果直接查询,可以参考我的这段代码:if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_search]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
    drop procedure [dbo].[p_search]
    GO/*--搜索某个字符串在那个表的那个字段中--邹建 2004.10(引用请保留此信息)--*//*--调用示例
    use pubs
    exec p_search N'l'
    --*/
    create proc p_search
    @str Nvarchar(1000) --要搜索的字符串
    as
    if @str is null returndeclare @s Nvarchar(4000)
    create table #t(表名 sysname,字段名 sysname)declare tb cursor local for
    select s='if exists(select 1 from ['+replace(b.name,']',']]')+'] where ['+a.name+'] like N''%'+@str+'%'')
    print ''所在的表及字段: ['+b.name+'].['+a.name+']'''
    from syscolumns a join sysobjects b on a.id=b.id
    where b.xtype='U' and a.status>=0
    and a.xtype in(175,239,99,35,231,167)
    open tb
    fetch next from tb into @s
    while @@fetch_status=0
    begin
    exec(@s)
    fetch next from tb into @s
    end
    close tb
    deallocate tb
    go
      

  5.   

    问题已解决,非常感谢诸位,特别是 zjcxc(邹建)