文章分类 | 推荐文章 | 最新文章 | 热点文章 | 最新软件 | 精品软件 | 下载排行 | 推荐下载 | WPS | 杀毒软件
清风网络
首 页 软件下载 网络学院
QQ 电脑入门 游戏 操作系统 图形处理 办公软件 媒体动画 精文荟萃 工具软件 网络编程 程序开发 网络技术 认证考试 网站建设 文章专栏
当前位置:清风网络网络编程MSSQL执行带嵌入参数的sql——sp_executesql
精品推荐
特别推荐
·SQL SERVER 2005中的同步复制技术
·SQL Server企业管理器和查询分析器简介
·常用SQL语句词典
·结束SQL注入隐患3招
·掌握SQL Server数据库的实用技巧
·SQL的简单查询
·快速解决SQL Server“安全疑难”相关问题
·SQL Server 2005:你应知道的13件事
·实例解析:减少SQL日志大小的三个好方法
·使用SQL2000将现有代码作为Web服务提供
热点TOP10
·“木马”查杀法和清除法
·SQL2000 数据库安装说明
·巴塞尔新资本协议概述
·SQL server 2005安装问题汇总
·安装Ms SQL Server 2005 开发版时出现性能计数器要求安装错误的解决办法
·SQL Server 练习题
·SQL Server 2005 Express Edition安装步骤详解
·SQL Server企业管理器和查询分析器简介
·SQL SERVER 2005中的同步复制技术
·还原精灵实战

执行带嵌入参数的sql——sp_executesql

日期:2007年7月2日 作者: 查看:[大字体 中字体 小字体]


   
通常执行sql语句,大家用的都是exec,exec功能强大,但不支持嵌入参数,sp_executesql解决了这个问题。抄一段sqlserver帮助:

sp_executesql

执行可以多次重用或动态生成的 Transact-SQL 语句或批处理。Transact-SQL 语句或批处理可以包含嵌入参数。

语法

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

参数

[@stmt =] stmt

包含 Transact-SQL 语句或批处理的 Unicode 字符串,stmt 必须是可以隐式转换为 ntext 的 Unicode 常量或变量。不允许使用更复杂的 Unicode 表达式(例如使用 + 运算符串联两个字符串)。不允许使用字符常量。如果指定常量,则必须使用 N 作为前缀。例如,Unicode 常量 N'sp_who' 是有效的,但是字符常量 'sp_who' 则无效。字符串的大小仅受可用数据库服务器内存限制。

stmt 可以包含与变量名形式相同的参数,例如:

N'SELECT * FROM Employees WHERE EmployeeID = @IDParameter'

stmt 中包含的每个参数在 @params 参数定义列表和参数值列表中均必须有对应项。

[@params =] N'@parameter_name  data_type [,...n]'

字符串,其中包含已嵌入到 stmt 中的所有参数的定义。该字符串必须是可以隐式转换为 ntext 的 Unicode 常量或变量。每个参数定义均由参数名和数据类型组成。n 是表明附加参数定义的占位符。stmt 中指定的每个参数都必须在 @params 中定义。如果 stmt 中的 Transact-SQL 语句或批处理不包含参数,则不需要 @params。该参数的默认值为 NULL。

[@param1 =] 'value1'

参数字符串中定义的第一个参数的值。该值可以是常量或变量。必须为 stmt 中包含的每个参数提供参数值。如果 stmt 中包含的 Transact-SQL 语句或批处理没有参数,则不需要值。

n

附加参数的值的占位符。这些值只能是常量或变量,而不能是更复杂的表达式,例如函数或使用运算符生成的表达式。

返回代码值

0(成功)或 1(失败)

结果集

从生成 SQL 字符串的所有 SQL 语句返回结果集。


例子(感谢邹建提供)

declare @user varchar(1000)
declare @moTable varchar(20)

select @moTable = 'MT_10'




declare @sql nvarchar(4000)  --定义变量,注意类型


set @sql='select @user = count(distinct userid)  from '+@moTable  --为变量赋值

--执行@sql中的语句
exec sp_executesql @sql
  ,N'@user varchar(1000) out'  --表示@sql中的语句包含了一个输出参数
  ,@user out                   --和调用存储过程差不多,指定输出参数值


[1] [2] 下一页 



上一篇:在SQL Server中使用存储过程的代码

下一篇:企业管理器的常见用途

相关文章:
·液晶与CRT比较,破除对液晶参数的迷信
·18条CPU参数详解
·使用ADS1.2进行嵌入式软件开发
·无法打开EXE可执行文件的解决
·开源嵌入式数据库BerkeleyDB(2)
·常用3DsMAX材质表现方法和参数设置
·如何利用SQL Server 2005中的模板参数
·DOS常用命令参数的中文详解
·刻成电脑和电视都能看的DVD光盘?如何选择参数?
·想成为嵌入式程序员应知道的0x10个基本问题
相关软件:

特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
[打印本页] [关闭窗口] 转载请注明来源:http://www.vipcn.net
| 帮助(?) | 版权声明 | 友情连接 | 关于我们 | 信息发布
Copyright 2007 www.vipcn.net All Rights Reserved. 鄂ICP备05000083号Powered by:viphot