第一种用法:

--@sqlstring :就是你要执行的sql语句字符串
--@ParmDefinition: @sqlstring里边用到的参数在这里声明 输出的参数要加output
--sp_executesql:
--第一个参数sqlstring 就是执行的sql字符串了
--第二个参数@ParmDefinition是@sqlstring里边用到的参数在这里声明 输出的参数要加output
--最后的参数加output的参数是输出的参数(需要和外部的相对应的变量建立关联)
--中间的参数就是@sqlstring 里边用到的参数(需要和外部的相对应的变量建立关联)
--最后你可以 select 输出的参数 来查询(select @count)

--小结:1.@sqlString直接写需要执行的语句,动态参数用@custid形式标记
-- 2.@parmDefinition:为标记动态语句里面的参数及类型,返回标记output
-- 3.EXECUTE sp_executesql:执行,第一常数为动态sql语句,第二个参数为为动态sql语句参数,后面的参数为对应参数传入的值
GO
DECLARE @id INT;
DECLARE @sqlString NVARCHAR(500);
DECLARE @parmDefinition NVARCHAR(500);
DECLARE @count INT;

SET @id=144;

SET @sqlString=N'SELECT * FROM dbo.tb_invite_code WHERE custid=@custid ';
SET @sqlString=@sqlString+N' set @out=(SELECT COUNT(1) FROM dbo.tb_invite_code WHERE custid=@custid)';
SET @parmDefinition=N'@custid int,@out int output';

EXECUTE sp_executesql @SQLString,@parmDefinition,@custid= @id,@out= @count OUTPUT
SELECT @count
GO

第二中用法

--注意:
--1.EXEC(@sql):必须以这种变量形式来执行,直接拼接字符串会报错
--2.在@sql拼接中,如果有一个参数为NULL,则拼接出来的也为NULL,一般用ISNULL(@table,'Trade')来判断
--3.字符串拼接,就要将常数全部转换为字符串CAST(@havenum AS NVARCHAR(100))
--4.在拼接的时候,如果常数为字符串,参数两边要加上''
go
DECLARE @havenum INT ,@isDel INT,@sql NVARCHAR(2000),@table NVARCHAR(100)
SET @table=NULL
SET @havenum=0
SET @isDel=0
SET @sql='SELECT * FROM dbo.Share'+ISNULL(@table,'Trade')+' WHERE HaveNum='''
+CAST(@havenum AS NVARCHAR(100))+''''
+'and isDel='+CAST(@isdel AS NVARCHAR(100))
PRINT @sql
EXEC(@sql)
go

sp_executesq用法的更多相关文章

  1. EditText 基本用法

    title: EditText 基本用法 tags: EditText,编辑框,输入框 --- EditText介绍: EditText 在开发中也是经常用到的控件,也是一个比较必要的组件,可以说它是 ...

  2. jquery插件的用法之cookie 插件

    一.使用cookie 插件 插件官方网站下载地址:http://plugins.jquery.com/cookie/ cookie 插件的用法比较简单,直接粘贴下面代码示例: //生成一个cookie ...

  3. Java中的Socket的用法

                                   Java中的Socket的用法 Java中的Socket分为普通的Socket和NioSocket. 普通Socket的用法 Java中的 ...

  4. [转载]C#中MessageBox.Show用法以及VB.NET中MsgBox用法

    一.C#中MessageBox.Show用法 MessageBox.Show (String) 显示具有指定文本的消息框. 由 .NET Compact Framework 支持. MessageBo ...

  5. python enumerate 用法

    A new built-in function, enumerate() , will make certain loops a bit clearer. enumerate(thing) , whe ...

  6. [转载]Jquery中$.get(),$.post(),$.ajax(),$.getJSON()的用法总结

    本文对Jquery中$.get(),$.post(),$.ajax(),$.getJSON()的用法进行了详细的总结,需要的朋友可以参考下,希望对大家有所帮助. 详细解读Jquery各Ajax函数: ...

  7. 【JavaScript】innerHTML、innerText和outerHTML的用法区别

    用法: <div id="test">   <span style="color:red">test1</span> tes ...

  8. chattr用法

    [root@localhost tmp]# umask 0022 一.chattr用法 1.创建空文件attrtest,然后删除,提示无法删除,因为有隐藏文件 [root@localhost tmp] ...

  9. 萌新笔记——vim命令“=”、“d”、“y”的用法(结合光标移动命令,一些场合会非常方便)

    vim有许多命令,网上搜有一堆贴子.文章列举出各种功能的命令. 对于"="."d"."y",我在无意中发现了它们所具有的相同的一些用法,先举 ...

随机推荐

  1. php apc 安装

    APC简介 APC(Alternative PHP Cache)是一个PHP缓存.它在内存中存储PHP页面并且减少了硬盘的I/O.这对于性能的提升十分明显.你甚至可以在CPU使用率下降50%的情况下提 ...

  2. 框架和事务 非常 有用 hibernate和mybatis区别

    1****第一章 Hibernate与MyBatis 章 开发对比 开发学习 Hibernate的真正掌握要比Mybatis来得难些.Mybatis框架相对简单很容易上手,但也相对简陋些.个人觉得要用 ...

  3. p3203 弹飞绵羊

    传送门 分析 基本的lct操作,建一个点N表示弹飞出去的点,每次输出N的左子树的大小即可 代码 #include<iostream> #include<cstdio> #inc ...

  4. Luogu 3168 [CQOI2015]任务查询系统

    区间修改单点查询,又观察到是一个k小,考虑主席树上做差分 一开始样例疯狂挂,后来发现主席树在一个历史版本上只能修改一次,所以要开2*n个根结点,记录一下每个时间对应的根结点编号 然后80分,考虑到当一 ...

  5. (数组)对数组中的数字加1(plus one)

    题目:https://www.nowcoder.com/practice/4d135ddb2e8649ddb59ee7ac079aa882?tpId=46&tqId=29111&tPa ...

  6. c# 的默认访问修饰符小结(转)

    c# 的访问修饰符是private 还是 internal? 准确的说,不能一概而论. [MSDN] Classes and structs that are not nested within ot ...

  7. Redis集群Windows

    一 所需软件:Redis.Ruby语言运行环境.Redis的Ruby驱动redis-xxxx.gem.创建Redis集群的工具redis-trib.rb 二 安装配置redis redis下载地址   ...

  8. C#提取TXT文档指定内容

    早上有分享一篇<VB.NET提取TXT文档指定内容> http://www.cnblogs.com/insus/p/3267347.html 那是原网友的需求用VB.NET写的.刚才有只懂 ...

  9. day01.3-常用Dos命令

    一.  常用Dos命令 Windons系统下:开始 —> 运行—> cmd —> 进入命令运行界面 1.  ipconfig /? |—> 查看ip帮助: 2.  ping / ...

  10. A. Theatre Square(math)

    A. Theatre Square time limit per test 1 second memory limit per test 256 megabytes input standard in ...