`
joerong666
  • 浏览: 423940 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

sp_executesql接收返回多个参数实例

SQL 
阅读更多

 sp_executesql接收返回多个参数实例  <script></script>

近日做项目中需要在EXEC执行Sql字符串时动态的传入参数并接收返回值,于是研究了一下SqlServer中sp_executesql的使用方法,并做了如下的例子。
在使用sp_executesql动态传入与接收返回参数时需注意以下事项,以避免大家走弯路。
例子中@SQLString,@ParmDefinition一定要使用NVARCHAR类型,否则会报“过程需要参数 '××××' 为 'ntext/nchar/nvarchar' 类型。”错误。
文档中说这两个变量赋值的字符串前要加N,我试了试,没加也不报错,不过你最好加上。毕竟人家是官方文档么。

--传递一个Int类型参数
DECLARE @IntVariable INT
DECLARE @SQLString NVARCHAR(500)
DECLARE @ParmDefinition NVARCHAR(500)

SET @SQLString = N'SELECT * FROM pubs.dbo.employee WHERE job_lvl = @level'
SET @ParmDefinition = N'@level tinyint'
SET @IntVariable = 35
EXECUTE sp_executesql @SQLString@ParmDefinition,@level = @IntVariable
--SET @IntVariable = 32
--
EXECUTE sp_executesql @SQLString, @ParmDefinition,@level = @IntVariable
--
-----------------------------------------------------------------------------
--
传递一个varchar类型参数
DECLARE @VarVariable varchar(500)
DECLARE @SQLString NVARCHAR(500)
DECLARE @ParmDefinition NVARCHAR(500)

SET @SQLString = N'SELECT * FROM pubs.dbo.employee WHERE fname = @VarVariable'
SET @ParmDefinition = N'@VarVariable varchar(500)'
SET @VarVariable = 'Helen'
EXECUTE sp_executesql @SQLString@ParmDefinition,@VarVariable
-------------------------------------------------------------------------------
--
传递两个参数,一个varchar类型参数接收返回值,一个Int类型参数
DECLARE @VarVariable VARCHAR(500)
DECLARE @IntVariable INT
DECLARE @SQLString NVARCHAR(500)
DECLARE @ParmDefinition NVARCHAR(500)

SET @SQLString = N'SELECT @VarVariable = Count(*) FROM pubs.dbo.employee WHERE job_lvl = @IntVariable'
SET @IntVariable = 35
SET @ParmDefinition = N'@VarVariable VARCHAR(500) OUT,@IntVariable INT'
SET @VarVariable = 'Helen'
EXECUTE sp_executesql @SQLString,@ParmDefinition,@VarVariable OUT,@IntVariable
print @VarVariable
分享到:
评论

相关推荐

    SQL示例大全.pdf

    `sp_executesql` 还支持输出参数,可以用来获取查询结果集之外的信息。例如,下面的示例展示了如何使用输出参数 `@max_title` 来获取最高职务。 ```sql DECLARE @IntVariable int; DECLARE @SQLString nvarchar(500...

    数据库函数实例的小例子 有助于初学者更好的理解存储过程的操作

    - 此函数可以用于将包含多个用户ID的字符串分割成独立的ID,以便进一步处理或存储。例如,当从外部系统获取到一串用户ID时,可以使用该函数将其分割开来,并存入数据库中。 #### 总结 通过以上三个具体实例的学习,...

    sql存储过程几个简单例子

    - 动态SQL:在存储过程中,可以构建字符串形式的SQL语句,然后使用`EXEC sp_executesql`执行。 - 存储过程的参数可以有默认值,也可以是输入、输出或输入输出类型。 - 存储过程的查询优化:考虑索引的使用、减少...

    SQL Server创建链接服务器的存储过程示例分享

    在SQL Server中,链接服务器是一项强大的功能,它允许用户执行分布式查询,跨越多个数据库系统进行数据操作。通过创建链接服务器,你可以访问OLE DB支持的数据源,例如其他SQL Server实例、Oracle数据库、Excel文件...

    子句内和SQL Server技术

    EXEC sp_executesql @SQL END ``` 在C#中,可以调用这个存储过程,将ID列表作为单个字符串传递: ```csharp using (SqlConnection conn = new SqlConnection(connString)) { SqlCommand cmd = new SqlCommand(...

    java调用存储过程

    这个例子展示了如何调用名为`sp_getCustomerById`的存储过程,该过程接收一个整数ID作为参数,并返回匹配的客户信息。 8. **事务管理** 如果存储过程涉及多个数据库操作,可能需要考虑事务管理。使用`Connection....

Global site tag (gtag.js) - Google Analytics