仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1369|回复: 8
打印 上一主题 下一主题

[学习教程] MSSQL编程:实行带嵌进参数的sql――sp_executesql...

[复制链接]
金色的骷髅 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:36:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
两个到底是哪一个给出了MySQL这个名字至今依然是个迷,包括开发者在内也不知道。实行一般实行sql语句,人人用的都是exec,exec功效壮大,但不撑持嵌进参数,sp_executesql办理了这个成绩。抄一段sqlserver匡助:

sp_executesql
实行能够屡次重用或静态天生的Transact-SQL语句或批处置。Transact-SQL语句或批处置能够包括嵌进参数。
语法
sp_executesql[@stmt=]stmt
[
{,[@params=]N@parameter_namedata_type[,...n]}
{,[@param1=]value1[,...n]}
]
参数
[@stmt=]stmt

包括Transact-SQL语句或批处置的Unicode字符串,stmt必需是能够隐式转换为ntext的Unicode常量或变量。不同意利用更庞大的Unicode表达式(比方利用+运算符串连两个字符串)。不同意利用字符常量。假如指定常量,则必需利用N作为前缀。比方,Unicode常量Nsp_who是无效的,可是字符常量sp_who则有效。字符串的巨细仅受可用数据库服务器内存限定。

stmt能够包括与变量名情势不异的参数,比方:

NSELECT*FROMEmployeesWHEREEmployeeID=@IDParameter

stmt中包括的每一个参数在@params参数界说列表和参数值列表中均必需有对应项。

[@params=]N@parameter_namedata_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@uservarchar(1000)
declare@moTablevarchar(20)
select@moTable=MT_10




declare@sqlnvarchar(4000)--界说变量,注重范例



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

--实行@sql中的语句
execsp_executesql@sql
,N@uservarchar(1000)out--暗示@sql中的语句包括了一个输入参数
,@userout--和挪用存储历程差未几,指定输入参数值

print@user






本例中,@moTable为嵌进参数。
一个语句分成两个event(实际上不止,其他可以忽略),一个table_mapevent和一个Rows_log_event。Table_mapevent是一样的,主要看Rows_log_event。
山那边是海 该用户已被删除
沙发
发表于 2015-1-19 18:45:15 | 只看该作者
备份方面可能还是一个老大难的问题。不能单独备份几个表总是感觉不爽。灵活备份的问题不知道什么时候才能解决。
柔情似水 该用户已被删除
板凳
发表于 2015-1-28 09:26:40 | 只看该作者
比如日志传送、比如集群。。。
变相怪杰 该用户已被删除
地板
发表于 2015-2-5 15:27:27 | 只看该作者
记得在最开始使用2k的时候就要用到这个功能,可惜2k没有,现在有了作解决方案的朋友会很高兴吧。
深爱那片海 该用户已被删除
5#
发表于 2015-2-12 14:20:19 | 只看该作者
习惯敲命令行的朋友可能会爽一些。但是功能有限。适合机器跑不动SQLServerManagementStudio的朋友使用。
6#
发表于 2015-3-3 03:28:50 | 只看该作者
财务软件要用SQL也只是后台的数据库而已,软件都是成品的,当然多学东西肯定是有好处的..
乐观 该用户已被删除
7#
发表于 2015-3-11 09:16:16 | 只看该作者
至于淘汰的问题,只能说在你的项目周期之内,微软应该都不会倒闭。
愤怒的大鸟 该用户已被删除
8#
发表于 2015-3-18 02:54:22 | 只看该作者
另一个是把SQL语句写到服务器端,就是所谓的SP(存储过程);
小魔女 该用户已被删除
9#
发表于 2015-3-25 10:10:10 | 只看该作者
呵呵,这就是偶想说的
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-5 22:15

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表