在sql里面,那些单引号如何看比较好啊,下面的这个sql存储过程里的单引号看得我头都晕了,有什么比较好的方法理解吗?
BEGIN
EXEC dbo.sp_executesql @statement = N'CREATE PROCEDURE [bookconditionsearch]
(@classfy [varchar](50),
@type [varchar](10),
@content [varchar](50),
@mode [int]
)
AS
begin
declare @sql nvarchar(1000) --生成的sql语句
if @classfy=''所有书刊''
begin
if @mode=1
begin
set @sql=''select * from books where ''+@type+'' like ''''''+@content+''%''''''
exec sp_executesql @sql
end else
begin
set @sql=''select * from books where ''+@type+'' like ''''%''+@content+''%''''''
exec sp_executesql @sql
end
end
else
begin
if @mode=1
begin
set @sql=''select * from books where bookclassfy=''''''+@classfy+'''''' and ''+@type+'' like ''''''+@content+''%''''''
exec sp_executesql @sql
end
else
begin
set @sql=''select * from books where bookclassfy=''''''+@classfy+'''''' and ''+@type+'' like ''''%''+@content+''%''''''
exec sp_executesql @sql
end
end
end
'
END
BEGIN
EXEC dbo.sp_executesql @statement = N'CREATE PROCEDURE [bookconditionsearch]
(@classfy [varchar](50),
@type [varchar](10),
@content [varchar](50),
@mode [int]
)
AS
begin
declare @sql nvarchar(1000) --生成的sql语句
if @classfy=''所有书刊''
begin
if @mode=1
begin
set @sql=''select * from books where ''+@type+'' like ''''''+@content+''%''''''
exec sp_executesql @sql
end else
begin
set @sql=''select * from books where ''+@type+'' like ''''%''+@content+''%''''''
exec sp_executesql @sql
end
end
else
begin
if @mode=1
begin
set @sql=''select * from books where bookclassfy=''''''+@classfy+'''''' and ''+@type+'' like ''''''+@content+''%''''''
exec sp_executesql @sql
end
else
begin
set @sql=''select * from books where bookclassfy=''''''+@classfy+'''''' and ''+@type+'' like ''''%''+@content+''%''''''
exec sp_executesql @sql
end
end
end
'
END
解决方案 »
- 一个简单的JS问题
- xwc:xdatagrid的分页怎么用呀?
- 服务器控件button与html控件类型是submit的问题
- [在线等]如何在ASP.NET中使用Windows域帐号的信息来控制用户登录呢?
- 一個很簡單也很常用的問題!
- 求教高人:问题描叙:客户在线点播我的视频,由于意外网络断了,他下次点播 我要从上次的时间段继续计时。我要怎么做。
- 如何在网页中显示数据中的图片
- 这句语句该如何改
- 关于 Response.Redirect传递两个以上参数的问题,请指教了。
- 对非共享成员的引用要求对象引用是什么意思?在线等待,急啊!!!
- GridView 与checkbox的问题
- 一个页面中,有两个按钮和若干文本框,我怎么设定访客在焦点落在文本框时按回车调用的按钮?
还不如在C#里拼字符串。
用实体类封装之后就没引号了。
http://topic.csdn.net/u/20090227/16/9f795a88-45b5-47c7-b68e-a83ae0d74fd8.html
@mode 表示变量exec sp_executesql @sql 表示执行存储过程 sp_executesql 并赋予参数@sql
end
相当于
{
}
set @sql=''select * from books where ''+@type+'' like ''''''+@content+''%''''''
(select * from books where @type like @content%)set @sql=''select * from books where ''+@type+'' like ''''%''+@content+''%''''''
(select * from books where @type like %@content%)set @sql=''select * from books where bookclassfy=''''''+@classfy+'''''' and ''+@type+'' like ''''''+@content+''%''''''
(select * from books where bookclassfy=@classfy and @type like @content%)set @sql=''select * from books where bookclassfy=''''''+@classfy+'''''' and ''+@type+'' like ''''%''+@content+''%''''''
(select * from books where bookclassfy=@classfy and @type like %@content%)
(select * from books where @type like @content%) set @sql=''select * from books where ''+@type+'' like ''''%''+@content+''%''''''
(select * from books where @type like %@content%) set @sql=''select * from books where bookclassfy=''''''+@classfy+'''''' and ''+@type+'' like ''''''+@content+''%''''''
(se…。。崩溃了。。
up
main
{
string 支持代码=“给我积分”!
}