Sql语句用变量 用exec sp_executesql 执行之

原创 2005年02月25日 16:54:00

CREATE Procedure sp_Select_Selling_Test
@StkList_Id varchar(30),
@Bill_Sta tinyint
as
declare @StrSql nvarchar(250)
Set @StrSql=''
if  len(ltrim(rtrim(@StkList_Id)))>0
Begin
Set @StrSql=@StrSql + ' And StkList_Id Like''%' + @StkList_Id +'%'''
end

if  @Bill_Sta>0
Begin
Set  @StrSql=@StrSql + ' And Bill_Sta='  + rtrim(ltrim(str(@Bill_Sta) ))

end
Set  @StrSql='Select * From Stocks_Sell_Data Where StkList_Id<>''''' + @StrSql
exec sp_executesql  @StrSql
GO

//
调用
exec sp_Select_Selling_Test '050128XS-003',1

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

CREATE PROCEDURE sp_Product_Search
@Product_Code nvarchar(20),
@Sale_Price real
 AS
declare @StrSql  nvarchar(200)
Set @StrSql=''


if len(ltrim(rtrim(@Product_Code)))>0
Begin
set @StrSql=@Strsql + ' and Product_Code Like "%' + ltrim(rtrim(@Product_Code)) +'%"'
end

if isnumeric(@Sale_Price)=1
Begin
set @StrSql=@Strsql + ' and Sale_Price<' + Cast(@Sale_Price as nvarchar(10))  //数字型要转为字符型
end

 Set @StrSql='Select * From Products Where (ProId<>0) ' + @StrSql
exec sp_executesql  @StrSql
GO

//调用

exec  sp_Product_Search 'l',22

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

//带output参数

CREATE PROCEDURE sp_Product_Search
@Product_Code nvarchar(20),
@Sale_Price real,
@aa nvarchar(200) output
 AS
declare @StrSql  nvarchar(200)
Set @StrSql=''


if len(ltrim(rtrim(@Product_Code)))>0
Begin
set @StrSql=@Strsql + ' and Product_Code Like "%' + ltrim(rtrim(@Product_Code)) +'%"'
end

if isnumeric(@Sale_Price)=1
Begin
set @StrSql=@Strsql + ' and Sale_Price<' + Cast(@Sale_Price as nvarchar(10))
end

 Set @StrSql='Select * From Products Where (ProId<>0) ' + @StrSql
set @aa = @StrSql
exec sp_executesql  @StrSql
GO

///调用

declare @aa as nvarchar(200)
exec sp_Product_Search  'l',22,@aa output
print @aa

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

相关文章推荐

动态SQL的执行,注:exec sp_executesql 其实可以实现参数查询和输出参数的

点击打开链接 当需要根据外部输入的参数来决定要执行的SQL语句时,常常需要动态来构造SQL查询语句,个人觉得用得比较多的地方就是分页存储过程和执行搜索查询的SQL语句。一个比较通用的分页...
  • yenange
  • yenange
  • 2012年12月21日 11:05
  • 7727

mssql:sp_executesql与exec(@sql)

sp_executesql 位于master库下的一个扩展存储过程。用于执行一段sql代码。 例子: declare @count int,@tableNamenvarchar(50),@SQLStr...

用exec sp_executesql @sql,N'@b int output',@b output 取出查询到@sql的数

USE [wwdthdb00] GO /****** Object:  StoredProcedure [dbo].[wwdadm_lottery]    Script Date: 06/24/201...
  • suhu1
  • suhu1
  • 2013年06月24日 21:44
  • 605

sqlserver 动态sql执行execute和sp_executesql

sqlserver 动态sql的执行,有两个方法execute和 sp_executesql.其中第一个方法execute可以简写为exec. execute方法适合执行没有返回值的动态sql,sp_...

EXEC与sp_executesql的区别及应用

execute,简写为exec,除了用来执行存储过程,一般都用来执行动态Sql sp_executesql,sql2005中引入的新的系统存储过程,也是用来处理动态sql的,如:  exec...

EXEC和sp_executesql的区别有哪些

1、 性能:   官方描述:sp_executesql stmt 参数中的 Transact-SQL 语句或批处理在执行 sp_executesql 语句时才编译。随后,将编译 stmt 中的...
  • whaxrl
  • whaxrl
  • 2014年05月19日 22:50
  • 384

SQLServer : EXEC和sp_executesql的区别

1,EXEC的使用 2,sp_executesql的使用        MSSQL为我们提供了两种动态执行SQL语句的命令,分别是EXEC和sp_executesql;通常,sp_ex...

EXEC和sp_executesql的区别

1,EXEC的使用 2,sp_executesql的使用        MSSQL为我们提供了两种动态执行SQL语句的命令,分别是EXEC和sp_executesql;通常,sp_exec...

exec与sp_executesql语法的区别详解(转)

动态语句语法: --方法1查询表改为动态 select * from sysobjects exec("select ID,Name from sysobjects") exec s...
  • jimlong
  • jimlong
  • 2012年07月02日 23:24
  • 1300

exec与sp_executesql语法的区别详解

动态语句语法: --方法1查询表改为动态 select * from sysobjects exec('select ID,Name from sysobjects') exec sp_...
  • hometo
  • hometo
  • 2011年08月05日 16:28
  • 1309
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Sql语句用变量 用exec sp_executesql 执行之
举报原因:
原因补充:

(最多只允许输入30个字)