在数据库中‘+’的用法

killuakidd 2009-03-30 03:25:55
我建两个存储过程,但不知道结果是不是一样的,发上来给大家看看给点意见我
create proc spClientInf
@ClientName varchar(8)='%',

as
select * from dbo.tClient
where cname like '@clientname%'
go
另一个是:
create proc spClientInf
@ClientName varchar(8)='%',
@
as
select * from dbo.tClient
where cname like '@clientname'+'%'
go

执行的结果是否一样,这个+的作用是否连接字符串的意思
...全文
85 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
dawugui 2009-03-30
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 htl258 的回复:]
引用 4 楼 dawugui 的回复:
引用 3 楼 htl258 的回复:
测了一下好像多了个逗号,帮改正:

不多逗号,多了个空格,无所谓.


SQL codecreate proc spClientInf @ClientName varchar(8) = '%',
as
exec('select * from tClient where cname like ''%/' + @clientname + '%'' escape ''/''')
go



消息 156,级别 15,状态 1,过程 spClientInf,第 2 行
关键字 'as' 附近有语法错误。
[/Quote]
哦,是楼主多了个,我忘记改了.
我只测试exec那句.
htl258_Tony 2009-03-30
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 dawugui 的回复:]
引用 3 楼 htl258 的回复:
测了一下好像多了个逗号,帮改正:

不多逗号,多了个空格,无所谓.
[/Quote]
create proc spClientInf @ClientName varchar(8) = '%', 
as
exec('select * from tClient where cname like ''%/' + @clientname + '%'' escape ''/''')
go


消息 156,级别 15,状态 1,过程 spClientInf,第 2 行
关键字 'as' 附近有语法错误。

dawugui 2009-03-30
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 htl258 的回复:]
测了一下好像多了个逗号,帮改正:
[/Quote]
不多逗号,多了个空格,无所谓.
htl258_Tony 2009-03-30
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 dawugui 的回复:]
SQL codecreate proc spClientInf @ClientName varchar(8) = '%',
as
exec('select * from tClient where cname like ''%/' + @clientname + '%'' escape ''/''')
go
[/Quote]
测了一下好像多了个逗号,帮改正:
create table tClient(cname varchar(10))
insert tClient select '50%'
go
alter proc spClientInf @ClientName varchar(8) = '%'
as
exec('select * from tClient where cname like ''%/' + @clientname + '%'' escape ''/''')
go

exec spClientInf
/*
cname
----------
50%

(1 行受影响)
*/
dawugui 2009-03-30
  • 打赏
  • 举报
回复
create proc spClientInf @ClientName varchar(8) = '%', 
as
exec('select * from tClient where cname like ''%/' + @clientname + '%'' escape ''/''')
go
htl258_Tony 2009-03-30
  • 打赏
  • 举报
回复
[Quote=引用楼主 killuakidd 的帖子:]
我建两个存储过程,但不知道结果是不是一样的,发上来给大家看看给点意见我
create proc spClientInf
@ClientName varchar(8)='%',

as
select * from dbo.tClient
where cname like '@clientname%'
go
另一个是:
create proc spClientInf
@ClientName varchar(8)='%',
@
as
select * from dbo.tClient
where cname like '@clientname'+'%'
go

执行的结果是否一样,这个+的作用是否连接字符串…
[/Quote]没错,在这里的作用的确如你所说.连接字符串.

34,591

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧