第一种用法:

--@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. apaache php 日记设计

    有个客户服务器是用apache搭建的,最近总是感觉站很慢,服务器很慢很卡,有时候甚至网 站都打不开,后来经过排查分析原来是里面的access.log和error.log这两个文件要经常上去看,和清理, ...

  2. activeMQ功能Demo

    1. 请阐述ActiveMQ的作用 2. 请描述ActiveMQ的工作原理 1. 解决服务之间耦合 2. 使用消息队列,增加系统并发处理量 3. 使用Java程序编写生产者发送10条“你好,activ ...

  3. 面试题:Concurrenthashmap原理分析 有用

    一.背景: 线程不安全的HashMap     因为多线程环境下,使用Hashmap进行put操作会引起死循环,导致CPU利用率接近100%,所以在并发情况下不能使用HashMap.   效率低下的H ...

  4. 更新anaconda及所有包

    ################################## # 更新Anaconda conda update conda # 更新所有包 conda update --all ###### ...

  5. c语言中的const的作用及解析

    有时候我们希望定义这样一种变量,它的值不能被改变,在整个作用域中都保持固定.例如,用一个变量来表示班级的最大人数,或者表示缓冲区的大小.为了满足这一要求,可以使用const关键字对变量加以限定: co ...

  6. c/c++ 字符编码与标识符

    说明: 对于比较现代的语言来讲字符编码不是个大问题:java就可以使用中文作为变量名称,但对于C/C++来讲却不是这样,由于历史原因,标准和编译器厂商的实现总在不停的变化,相关编码信息到底是如何处理的 ...

  7. vue入门(三)----使用vue-cli搭建一个单页富应用

    上面两节我们说了vue的一些概念,其实说的知识一点基础,这部分知识我觉得更希望大家到官网进行学习,因为在这里说的太多我觉得也只是对官网的照搬照抄而已.今天我们来学习一下vue-cli的一些基础知识,并 ...

  8. C#:最简洁强大的代码生成器

    这是我们项目中最常用,也是最强大的代码生成器,可以自动生成 存储过程,Model,DAL,BLL 多层的脚本. 第一步:配置config,设置连接的数据库 <?xml version=" ...

  9. Javascript之入门篇(一)

    上一篇学习了什么是JavaScript语言及其作用和特有的特点等,本篇将详细介绍JavaScript一些入门使用方式. 对于初学者来讲,由于JavaScript是嵌入到HTML页面里面的,首先创建一张 ...

  10. cuda测试二维block的使用

    #include "cuda_runtime.h" #include <stdio.h> #include <stdlib.h> #include < ...