大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
如果你想这样做,肯定有这样的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存储表名和列名的表不一样,表结构也不一样
一、查询包含某字段的所有表、视图和存储
格式:
注意:其中类型P、U、V分别对应存储、表和视图。
例子:
查询结果:
二、查询包含某字段(或某内容)的所有存储过程
查询存储中包含某些内容的所有存储。
格式:
例子:
查询结果:
一般在sql里搜索看你是模糊的还是已知的
已知道的就直接列名等于关键词的
模糊的就列名 Like关键词
举例:
已知道的:select * from table where column='关键词'
模糊的:select * from table where column like '%关键词%'
这里的的百分号可以自己调的.
例如你要查的是以关键词结尾的例那么就是:%关键词
总之%号是点位符号的意思,任何一个或多个字符都可以。如果只要一位好像是用下划线的,小线(_)括号里的,只带表一个字符,具体去查相关的通配符知识的。
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);
有自带的全文检索,主要功能是在指定列上创建全文检索索引,然后可以基于关键字查询该列内容。
在where语句后面用CONTAINS(列名,value)这个函数就可以,没有索引的话应该就是扫描的方式执行。
没有
你可以尝试这样
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