当前位置:首页 » 存储配置 » sql存储过程like

sql存储过程like

发布时间: 2022-07-19 18:34:50

sql SERVER 2005 存储过程中怎样使用 like.

这个应该是说看表是否有外键关系。方法是,在SQL
SERVER
2005的Management但反复执行的动态SQL,可以使用临时存储过程,该过程(临时表)被放在Tempdb中。

② sql存储过程中,模糊查询的写法

ALTER PROCEDURE [dbo].[pro_Search_keys]
@keys nvarchar(max)
AS
BEGIN
SELECT*
FROM text_Text
where Title like ‘%’+@keys+‘%’
END

③ SQL:存储过程中的like问题!

like '%'+rtrim(@para1)+'%'

④ SQL存储过程(含变量)like语句实现不了

@Depart char
首先不要用char,除非你能明确确定字数
其次字符类型一定要标注长度
改为@Depart nvarchar(20)试试

⑤ 关于sql存储过程的相似查询

因为like @date这样将@date整体看做一个变量,或者说将其内部代表的值看做变量,%不在是通配符,而是被转义为一个普通字符

⑥ 有关SQL存储过程变量模糊查询

select
*
from
user
where
user_name
like
'%'
||
变量
||
'%'
这样写就可以了。

⑦ sql语句执行指定存储过程在参数字符串中加like对引号的处理

当前有一存储过程
执行的时候
exec
的第一个参数需要加like语句

exec
proc_page
'info2
where
id
not
in(
select
top
(0)
id
from
info2
where
centerclass=152
and
bigcity=1
and
centercity=7
order
by
id
desc)
and
bigcity=1
and
centercity=7
and
centerclass=152
and
smallsubclassinfo
like
''%'||小型犬||'%''
'
,'*',10,10,'id',1,'','id',0
请问对like旁的单引号大家都如何处理才能使存储过程正确执行?

⑧ SQL 存储过程

仔细思考一下我的解决办法是否妥当:

因为过程开头部分已经定义了4个变量,并且都赋初值为'0',

那么,我们做两处变动:

1、在你的select语句执行前,我们写上4个判断,判断这4个变量是否被传入了值,未传入时怎么样处理。

2、修改select语句的where子句(语句中有三个“=”改成like)。

过多的描述也许难以看懂,我直接写出来,新增或修改的部分,我在后面用了注释“//--★”(我的写法是基于Sybase的,你可以看懂的。当然你也可以先看一下后面的【总结】):

if exists(………………………………)
drop ……………………
go
create Proc Proc_ManualSign
@BranchId varchar(10) = '0',
……………………
……………………
@UserName varchar(50) = '0'
as

begin //--★sybase写法,用于过程开始,参考你的数据库,看是否需要加

if @BranchId = '0' //--★如果@BranchId依然为初始值(未传入参数)
select @BranchId = '%' //--★那么将@BranchId赋值为'%'

if @DepartId = '0' //--★如果@DepartId依然为初始值(未传入参数)
select @DepartId = '%' //--★那么将@DepartId赋值为'%'

if @UserId = '0' //--★如果@UserId依然为初始值(未传入参数)
select @UserId = '%' //--★那么将@UserId赋值为'%'

if @UserName = '0' //--★如果@UserName依然为初始值(未传入参数)
select @UserName = '%' //--★那么将@UserName赋值为'%'

select …………
……………………
and b.BranchId like @BranchId --机构 //--★你原来的“=”改成了“like”
and d.DepartId like @DepartId --部门 //--★你原来的“=”改成了“like”
and m.UserId like @UserId --用户Id //--★你原来的“=”改成了“like”
and u.UserName like '%'+@UserName+'%' --用户名

end //--★sybase写法,用于标注过程结束,参考你的数据库,看是否需要加

go

======================================================================

【★★--总结--★★】我的办法:

4个变量初值为'0',excute执行该过程时,if语句就要依次判断各变量的当前值,判断的结果无非两种:①.未传入值(还是'0'),②.传入了值(不是'0')

①.未传入值
if语句判断出某变量未传入值,则将该变量置为'%',那么select语句的where条件中就是该字段 like '%',也就是该字段的检索条件为任意的。

②.传入了值
传入了值,则if语句的判断结果为假(False),那么直接跳出判断去执行select语句,虽然where子句的条件中用的是 like 介词,但没有通配符'%'的话,like 的作用也就是'=',即:【like '销售部'】的作用也就是 【='销售部'】,所以也满足了输入参数的精确查询要求。

执行时:

假如什么参数也不传入,即:查询全部的信息
excute Proc_ManualSign '0', '0', '0', '0'

假如仅部门和用户ID传入参数,则
excute Proc_ManualSign '0', '开发部', '319', '0'

⑨ 在SQL中存储过程的一般语法是什么

1、 创建语法

createproc|procerepro_name

[{@参数数据类型}[=默认值][output],

{@参数数据类型}[=默认值][output],

....

]

as

SQL_statements

2、 创建不带参数存储过程

--创建存储过程

if(exists(select*fromsys.objectswherename='proc_get_student'))

dropprocproc_get_student

go

createprocproc_get_student

as

select*fromstudent;

--调用、执行存储过程

execproc_get_student;

3、 修改存储过程

--修改存储过程

alterprocproc_get_student

as

select*fromstudent;

4、 带参存储过程

--带参存储过程

if(object_id('proc_find_stu','P')isnotnull)

dropprocproc_find_stu

go

createprocproc_find_stu(@startIdint,@endIdint)

as

select*fromstudentwhereidbetween@startIdand@endId

go

execproc_find_stu2,4;

5、 带通配符参数存储过程

--带通配符参数存储过程

if(object_id('proc_findStudentByName','P')isnotnull)

dropprocproc_findStudentByName

go

createprocproc_findStudentByName(@namevarchar(20)='%j%',@nextNamevarchar(20)='%')

as

select*fromstudentwherenamelike@nameandnamelike@nextName;

go

execproc_findStudentByName;execproc_findStudentByName'%o%','t%';

(9)sql存储过程like扩展阅读:

SQL存储过程优点:

1、重复使用。存储过程可以重复使用,从而可以减少数据库开发人员的工作量。

2、减少网络流量。存储过程位于服务器上,调用的时候只需要传递存储过程的名称以及参数就可以了,因此降低了网络传输的数据量。

3、安全性。参数化的存储过程可以防止SQL注入式攻击,而且可以将Grant、Deny以及Revoke权限应用于存储过程。

热点内容
问道刷道队伍怎么配置 发布:2024-10-07 12:09:17 浏览:321
androidservice使用 发布:2024-10-07 12:00:01 浏览:261
乐视2安卓版本怎么升级 发布:2024-10-07 11:51:11 浏览:696
方舟电脑版怎么进入官方服务器 发布:2024-10-07 11:09:32 浏览:805
百度云快速上传 发布:2024-10-07 10:52:25 浏览:480
java岛屿 发布:2024-10-07 10:29:25 浏览:971
qq会员的密码是多少 发布:2024-10-07 10:26:03 浏览:761
访问源服务器ip 发布:2024-10-07 10:24:31 浏览:56
脚本整理 发布:2024-10-07 10:20:48 浏览:234
图片上传功能java 发布:2024-10-07 10:14:18 浏览:130