成都网站建设设计

将想法与焦点和您一起共享

sqlserver检索,sqlserver检索慢

sqlserver如何多张表中搜索某个数据

如果你想这样做,肯定有这样的SQL,可以写出来。

创新互联公司坚持“要么做到,要么别承诺”的工作理念,服务领域包括:成都网站设计、成都做网站、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的蜀山网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!

不过肯定是不建议这么做,效率肯定会很低。

要自己拼SQL。只用SQL语句也能实现不过非常麻烦。

SQL SERVER 2000 中 sysobjects 这个表记录所有的表。

syscolumns 这个表记录所有的列。

可以通过联合查询查出所有的表中的字段,然后拼SQL,进行查询。

SELECT

表名=d.name,--case when a.colorder=1 then d.name else '' end,

字段序号=a.colorder,

字段名=a.name,

标识=case when COLUMNPROPERTY( a.id,a.name,'IsIdentity')=1 then '√'else '' end,

主键=case when exists(SELECT 1 FROM sysobjects where xtype='PK' and name in (

SELECT name FROM sysindexes WHERE indid in(

SELECT indid FROM sysindexkeys WHERE id = a.id AND colid=a.colid

))) then '√' else '' end,

类型=b.name,

占用字节数=a.length,

长度=COLUMNPROPERTY(a.id,a.name,'PRECISION'),

小数位数=isnull(COLUMNPROPERTY(a.id,a.name,'Scale'),0),

允许空=case when a.isnullable=1 then '√'else '' end,

默认值=isnull(e.text,''),

字段说明=isnull(g.[value],'')

FROM syscolumns a

left join systypes b on a.xtype=b.xusertype

inner join sysobjects d on a.id=d.id and d.xtype='U' and d.name'dtproperties'

left join syscomments e on a.cdefault=e.id

left join sysproperties g on a.id=g.id and a.colid=g.smallid

order by a.id,a.colorder

上面这个SQL是找到的数据库中所有表和列。

然后用游标,或其他的分析出所有的表和字段 拼接SQL然后查询吧。

这样的话,估计效率不是一般的慢。

建议还是找出具体那些字段中会存在你要查询的数据的具体表和列。然后进行查询,这样效率会快些。

上面那个2000中可以用

SQL SERVER 2005和2008存储表名和列名的表不一样,表结构也不一样

sqlserver查询数据库中包含某个字段的所有表和所有存储过程

一、查询包含某字段的所有表、视图和存储

格式:

注意:其中类型P、U、V分别对应存储、表和视图。

例子:

查询结果:

二、查询包含某字段(或某内容)的所有存储过程

查询存储中包含某些内容的所有存储。

格式:

例子:

查询结果:

sql server 2008 用什么语句对表内数据进行关键字搜索

一般在sql里搜索看你是模糊的还是已知的

已知道的就直接列名等于关键词的

模糊的就列名 Like关键词

举例:

已知道的:select * from table where column='关键词'

模糊的:select * from table where column like '%关键词%'

这里的的百分号可以自己调的.

例如你要查的是以关键词结尾的例那么就是:%关键词

总之%号是点位符号的意思,任何一个或多个字符都可以。如果只要一位好像是用下划线的,小线(_)括号里的,只带表一个字符,具体去查相关的通配符知识的。

sqlserver 如何根据条件选择要检索的列 case when

SELECT id,

CASE WHEN id=1 THEN firstname ELSE user END 'username'

FROM tb1

如果是查询条件要用这个就套一个

SELECT *

FROM tb1 a

WHERE username=(SELECT CASE WHEN id=1 THEN firstname ELSE user END

FROM tb1

WHERE id=a.id);

sqlserver有自带的全文检索?

有自带的全文检索,主要功能是在指定列上创建全文检索索引,然后可以基于关键字查询该列内容。

在where语句后面用CONTAINS(列名,value)这个函数就可以,没有索引的话应该就是扫描的方式执行。

sqlserver 中有没有检索指定字符出现的次数的函数

没有

你可以尝试这样

declare @searchstr varchar(max)

declare @valuestr varchar(max)

declare @index int

--结果表达试出现次数

declare @count int

--要搜索的表达式

set @searchstr = '111111abc2222222abc333333abc44444555'

--搜索表达试

set @valuestr = 'abc'

set @count = 0

select @index = charindex(@valuestr,@searchstr,0)

while @index0

begin

set @count = @count + 1

select @searchstr = substring(@searchstr,@index+len(@valuestr),len (@searchstr))

select @index = charindex(@valuestr,@searchstr,0)

end

select @count


分享标题:sqlserver检索,sqlserver检索慢
标题路径:http://chengdu.cdxwcx.cn/article/hocjsh.html