执行带参数的SQL, sp_executesql

转自 http://www.cnblogs.com/reinstallsys/archive/2009/06/15/1503743.html

Syntax

sp_executesql [ @stmt = ] stmt[     {, [@params=] N'@parameter_name data_type [ OUT | OUTPUT ][,...n]' }      {, [ @param1 = ] 'value1' [ ,...n ] }]

 

例1 @IntVariable int;
DECLARE @SQLString nvarchar(500);
DECLARE @ParmDefinition nvarchar(500);

/* Build the SQL string one time.*/
SET @SQLString =
     N'SELECT EmployeeID, NationalIDNumber, Title, ManagerID
       FROM AdventureWorks.HumanResources.Employee 
       WHERE ManagerID = @ManagerID';
SET @ParmDefinition = N'@ManagerID tinyint';
/* Execute the string with the first parameter value. */
SET @IntVariable = 197;
EXECUTE sp_executesql @SQLString, @ParmDefinition,
                      @ManagerID = @IntVariable;
/* Execute the same string with the second parameter value. */
SET @IntVariable = 109;
EXECUTE sp_executesql @SQLString, @ParmDefinition,
                      @ManagerID = @IntVariable;

 

例2:传出参数 @IntVariable int;
DECLARE @SQLString nvarchar(500);
DECLARE @ParmDefinition nvarchar(500);
DECLARE @max_title varchar(30);

SET @IntVariable = 197;
SET @SQLString = N'SELECT @max_titleOUT = max(Title) 
   FROM AdventureWorks.HumanResources.Employee
   WHERE ManagerID = @level';
SET @ParmDefinition = N'@level tinyint, @max_titleOUT varchar(30) OUTPUT';

EXECUTE sp_executesql @SQLString, @ParmDefinition, @level = @IntVariable, @max_titleOUT=@max_title OUTPUT;
SELECT @max_title;

 

 

时间: 2024-08-02 01:14:44

执行带参数的SQL, sp_executesql的相关文章

asp执行带参数的sql语句实例_应用技巧

asp执行带参数的sql语句,需要向sql语句添加参数,可以有效屏蔽SQL注入,源代码如下: 复制代码 代码如下: var conn = Server.CreateObject("ADODB.Connection"); conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("Test.mdb"); conn.Open();

asp执行带参数的sql语句实例

asp执行带参数的sql语句,需要向sql语句添加参数,可以有效屏蔽SQL注入,源代码如下: 复制代码 代码如下: var conn = Server.CreateObject("ADODB.Connection"); conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("Test.mdb"); conn.Open();

带参数的sql和不带参数的sql存储过程区别第1/2页_数据库其它

带参数的sql语句,在数据库端,执行的是 exec sp_executesql eg: exec sp_executesql N'insert into LCS_Sys_Model ([Model_GUID],[Model_Name],[Model_Desp],[Model_IsSys]) values ( @Model_GUID,@Model_Name,@Model_Desp,@Model_IsSys)', N'@Model_GUID uniqueidentifier,@Model_Name

ssis-SSIS 怎么样用olddb命令来实现带参数的sql

问题描述 SSIS 怎么样用olddb命令来实现带参数的sql update table set t.name = ? where t.id = ? 为什么我会报:提供程序不能导出参数信息,没有调用setparameterinfo

c-bat批处理循环执行带参数的exe

问题描述 bat批处理循环执行带参数的exe 代码如下 @echo off FOR /L %%i IN (1,1,100) DO ( cd /d E:LTP_workltp-win-3.3.1 ltp_test --input C:UsersadminDesktopIOIO%%i.txt --segmentor-lexicon C:UsersadminDesktopdict.txt>C:UsersadminDesktopxmlltp%%i.xml ) ltp是哈工大的分词二进制版本,这里我要循环

基于命令行执行带参数的php脚本并取得参数的方法_php技巧

本文分析了基于命令行执行带参数的php脚本并取得参数的方法.分享给大家供大家参考,具体如下: 一.为什么我们要在命令行下运行php脚本呢? 个人理解,主要有二个原因: 1. 利用crontab去跑php,可以给服务器减压,当然在这里有一个条件,就是实时性要求不高.比如:sns中的好友动态,这个实时要求不高,但是数据量比较大,这个时候定时跑的话,会给web服务器,数据库服务器分担不小的压力. 2. 就是我们要定时去完成某一事情,比如:我要删除一个月前,用户留言,这个时候,写的php脚本在cront

SqlParameter类——带参数的SQL语句

  SqlParameter 类   表示 SqlCommand 的参数,也可以是它到 DataSet 列的映射.无法继承此类. 命名空间:  System.Data.SqlClient 程序集:  System.Data(在 System.Data.dll 中)     举例1     string strconn = "Data Source=xxx;user id=sa;pwd=;initial catalog=gltest";         SqlConnection Con

新手求教,执行带参数的update语句

问题描述 我用的数据库是oracle我在class中主要实现了将符合条件的号码select选出来,然后对没条记录进行update,其中update的条件是:whereid=@id其中id是在select中的一个字段,如果这样的话,我的update语句应该怎样写,然后where语句中的参数@id怎么去拿到select中的值呢?请大家帮帮忙,我是菜鸟,拜托,谢谢 解决方案 解决方案二:@换成:whereid=:id解决方案三:那我的参数:id,怎么传呢?谢谢,我不知道应该怎么写是不是这样写updat

SqlDataReader执行带输出参数存储过程的错误分析

在上一篇随笔:SqlDataReader读取分页数据,pageCount你是肿么了? 遇到了很让人头疼的问题:SqlDataReader执行带输出参数的存储过程总是获取不到输出参数的正确值.这里将解决办法及分析过程列出,为遇到相同问题的小伙伴提供一种解决方案. 在SqlDataReader读取分页数据,pageCount你是肿么了?的评论中有博友提出将 param[2].Direction = ParameterDirection.Output; 该句代码放在执行查询前,确实有这一部分原因.按照