现有一思想理论库,里面有七到八个表,分别对于于理论_日本、理论_美国,每个表的字段都是相同的,分别为ID、文件标题(varchar)、文件摘要(varchar)、文件(varbinary(MAX)),如何遍历所有表查询含有某个关键词的记录?也就是说,输入一个关键词查询,只要这几个字段中内容含有这个关键词则显示该条记录。
还有varbinary与image有何区别?以前对image数据类型写过全文检索代码,不知varbinary类型是否与之相同?
对varbinary类型全文检索时是否需要像image类型的一样,要加一个数据类型的字段?
求高手指点
还有varbinary与image有何区别?以前对image数据类型写过全文检索代码,不知varbinary类型是否与之相同?
对varbinary类型全文检索时是否需要像image类型的一样,要加一个数据类型的字段?
求高手指点
varbinary [ ( n ) ]n 个字节变长二进制数据。n 必须从 1 到 8,000。存储空间大小为实际输入数据长度 +4 个字节,而不是 n 个字节。输入的数据长度可能为 0 字节。在 SQL-92 中 varbinary 的同义词为 binary varying。image可变长度二进制数据介于 0 与 231-1 (2,147,483,647) 字节之间
union all
...
union all
select * from 思想理论库..理论_美国 where charindex('关键词',文件标题)>0 or charindex('关键词',文件摘要)>0 ...
IF object_id('tabss') IS NOT NULL
exec('drop table tabss')
CREATE TABLE Tabss(id int identity(1,1),tabname varchar(100),colName varchar(100))--查询某表某列是否包含某个值
IF object_id('ysgs') IS NOT NULL
exec('drop proc ysgs')
exec('create PROC ysgs(@tab varchar(100),@col varchar(100))
AS
exec(''select 1 from ''+@tab+'' where ''+@col+'' like ''''%'+@value+'%'''''')')--将结果存入tabss表中
EXEC master.dbo.xp_execresultset 'SELECT ''exec ysgs ''''''+object_name(id)+'''''',''''''+name+'''''';if @@rowcount>0 insert tabss (colname,tabname)values(''''''+name+'''''',''''''+object_name(id)+'''''')'' FROM syscolumns s WHERE xtype in(SELECT xtype FROM systypes s2 WHERE name in(''char'',''varchar'',''nchar'',''nvarchar''))
AND id in(SELECT id FROM sysobjects s2 WHERE xtype=''u'')',N'test'
GO
/*调用
exec xb_GetTableNameAndColNameForValue 'aa_1'
SELECT * FROM tabss
*/
如何遍历所有表查询含有某个关键词的记录?也就是说,输入一个关键词查询,只要这几个字段中内容含有这个关键词则显示该条记录。对于这个查询请高手指点思路?最好能有一段代码提示,不胜感激。由于有两种数据类型(varchar,varbinary),这种如何做?
后面一个期待高手解答