在Sql Server查询语句中使用变量表示表名、列字段名等动态查询方式。

方法一:EXEC命令(支持普通字符和Unicode字符)

declare @sql as nvarchar(100);

set @sql = N'PRINT ''这条消息是动态SQL命令打印的.'';';

exec ( @sql );

declare @sql as nvarchar(100);
declare @OrderIDs as nvarchar(50) = N'10248,10249,10250'; set @sql = N'SELECT * FROM Sales.Orders WHERE orderid IN (' + @OrderIDs + N');'; exec ( @sql );

方法二:sp_executesql存储过程(提供了输入输出的接口,语句可以重用执行。只支持Unicode字符)

简单的查询

declare @TableName varchar(50), @SqlString nvarchar(200), @CourseID int;

set @TableName = '课程表';
set @CourseID = 1;
set @SqlString = N'select * from ' + quotename(@TableName) + N'where ID = ' + cast(@CourseID as varchar(10)); exec sp_executesql @SqlString;

使用接口(支持参数的输入输出)

declare @sql as nvarchar(100);

set @sql = N'SELECT orderid,custid,empid,orderdate
FROM Sales.Orders
WHERE orderid=@orderid;'; exec sys.sp_executesql @stmt = @sql, @params = N'@orderid AS INT', @orderid = 10248;

MSSQL SEVER执行动态SQL的更多相关文章

  1. Java下拼接执行动态SQL语句(转)

    在实际业务中经常需要拼接动态SQL来完成复杂数据计算,网上各类技术论坛都有讨论,比如下面这些问题: http://bbs.csdn.net/topics/390876591 http://bbs.cs ...

  2. SQL Server-聚焦sp_executesql执行动态SQL查询性能真的比exec好?

    前言 之前我们已经讨论过动态SQL查询呢?这里为何再来探讨一番呢?因为其中还是存在一定问题,如标题所言,很多面试题也好或者有些博客也好都在说在执行动态SQL查询时sp_executesql的性能比ex ...

  3. 在Oracle中执行动态SQL的几种方法

    转载:在Oracle中执行动态SQL的几种方法 以下为内容留存: 在Oracle中执行动态SQL的几种方法 在一般的sql操作中,sql语句基本上都是固定的,如:SELECT t.empno,t.en ...

  4. sp_executesql 或者 EXECUTE 执行动态sql的权限问题

    当 sp_executesql 或 EXECUTE 语句执行字符串时,字符串将作为它的自包含批处理执行.SQL Server 会将字符串中的一个或多个 Transact-SQL 语句编译为独立于批处理 ...

  5. 使用Oracle的DBMS_SQL包执行动态SQL语句

    引用自:http://blog.csdn.net/ggjjzhzz/archive/2005/10/17/507880.aspx 在某些场合下,存储过程或触发器里的SQL语句需要动态生成.Oracle ...

  6. 存储过程中执行动态Sql语句

    MSSQL为我们提供了两种动态执行SQL语句的命令,分别是EXEC和sp_executesql;通常,sp_executesql则更具有优势,它提供了输入输出接口,而EXEC没有.还有一个最大的好处就 ...

  7. 怎样SQL存储过程中执行动态SQL语句

    MSSQL为我们提供了两种动态执行SQL语句的命令,分别是EXEC和sp_executesql;通常,sp_executesql则更具有优势,它提供了输入输出接口,而EXEC没有.还有一个最大的好处就 ...

  8. sqlserver 动态表名 动态字段名 执行 动态sql

    动态语句基本语法: 1 :普通SQL语句可以用exec执行 Select * from tableName exec('select * from tableName') exec sp_execut ...

  9. SQL SERVER 执行动态SQL EXEC

    :普通SQL语句可以用Exec执行 eg: Select * from tableName Exec('select * from tableName') Exec sp_executesql N's ...

随机推荐

  1. memcached 学习笔记 4

    memcached真实项目中的应用 1 缓存式的Web应用程序架构 有了缓存的支持,我们可以在传统的app层和db层之间加入cache层,每个app服务器都可以绑定一个mc, 每次数据的读取都可以从m ...

  2. 04 Thread的方法(源代码) 和 线程的状态

      1 .Thread中重要的属性 publicclass Thread implements Runnable { //继承自Runnable接口private char name[]; // 以c ...

  3. 数据库SQLITE3初识

    数据库DataBase,我们都没有接触过数据库,那么数据库是什么? 它是一个有结构的.集成的.可共享的统一管理的数据集合! 所谓有结构的,指的是数据是按一定的模型组织起来的. 简单的说,拿个箱子,用隔 ...

  4. echart.js 参数解释

    Data参数 获取容器对象 var canvas = document.getElementById("myCanvas"); 渲染 var ctx = canvas.getCon ...

  5. 【PhotoShop】模糊图片清晰处理

    1.Ctrl+J复制出背景副本.对副本模式选择“亮度”. 2.选择“滤镜”菜单下的“锐化>USM锐化”命令,在设置窗口中适当调节一下锐化参数,根据你原图模糊的情况来调节,本图采用锐化数量为“15 ...

  6. WCF-绑定模型(二)

    二.绑定元素 每一个类型的绑定最重要的就是绑定元素了,每个绑定的功能特性都由绑定元素决定.BasicHttpBinding由用于编码的TextMessageEncodingBindingElement ...

  7. [javaSE] 多线程(守护线程)

    我们一般使用多线程,都是while的死循环,想要结束线程,只需退出死循环即可 当线程中调用了sleep()方法或者wait()方法,当前的线程就会进入冻结状态,这个线程就结束不了 调用Thread对象 ...

  8. 已有Web项目添加Maven支持

    IDE:MyEclipse 当我们在现有的Web开发项目中集成 Maven 的时候,需要修改以下几个地方: 1.将以下代码拷贝到工程根路径下的 .project 文件中的 <buildSpec& ...

  9. 浏览器好玩的的 console.log

    现在很多网站,你在访问他页面的时候, 你要查看 console 的话, 看到有文章介绍的,一定想知道是怎么展示来的吧 如 baidu 的 你懂的,其实很简单,代码如下, console 输出下就行 c ...

  10. Monitorix:一款面向Linux的轻型系统和网络监测工具

    Monitorix是一款功能非常强大的免费开源轻型工具,目的在于监测Linux中的系统和网络资源.它可以定期收集系统和网络数据,并使用自己的Web界面,通过图形显示相关信息.Monitorix让用户可 ...