
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 AName,BName From sysobjects A Inner join syscolumns B on aobject_id=bobject_id
Where AType='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,如果等则保存表名和字段名,最后返回结果
/
--汗,那是存储过程过程去遍历每个表的每个栏位,又不是要你一个写SQL
没什么区别的,一个是直接执行SQL语句,一个是把SQL语句拼接了放在@sql字符串里,然后执行@sql,就是用exec()方法
不过下面更灵活点,毕竟是拼接的,你如果传表的话就只能拼接语句了,而不能直接在里面写
select from @table
但是可以写成
declare @sql nvarchar(1000)
set @sql='select from ‘ +@table
exec(@sql)
假设你说的这个序列名字是seq_userinfo_id
如果仅仅是为了插入这个序列值完全可以不用触发器
insert into userinfo values (seq_userinfo_idnextval,1,'XXXX','PASSWORD');
如果触发器是必需的那么
create or replace trigger tri_userinfo_in
after insert on userinfo
for each row
begin
select seq_userinfo_idnextval into :newid from dual;
end;
/
广义的数据库,是按照数据结构来组织、存储和管理数据的仓库。在管理领域,常常需要把某些相关的数据放进这样的“仓库”,并根据管理的需要进行相应的处理。
比较完整的定义:数据库是存储在一起的相关数据的集合,这些数据是结构化的,无有害的或不必要的冗余,并为多种应用服务;数据的存储独立于使用它的程序;对数据库插入新数据,修改和检索原有数据均能按一种公用的和可控制的方式进行。当某个系统中存在结构上完全分开的若干个数据库时,则该系统包含一个“数据库集合”。
在计算机领域,数据库是依照某种数据模型组织起来并存放二级存储器中的数据集合。这种数据集合具有如下特点:尽可能不重复,以最优方式为某个特定组织的多种应用服务,其数据结构独立于使用它的应用程序,对数据的增、删、改和检索由统一软件进行管理和控制。从发展的历史看,数据库是数据管理的高级阶段,它是由文件管理系统发展起来的。
以上就是关于问sql数据库大神,我想查询某个数据库其中的一个数据,我不知道在哪个表,也不知道哪个列,只知道他的全部的内容,包括:问sql数据库大神,我想查询某个数据库其中的一个数据,我不知道在哪个表,也不知道哪个列,只知道他的、新手求教数据库的大神,两种创建存储过程的方法,有什么区别、求oracle数据库方面的大神帮忙解答!等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)