当前位置: 首页 > news >正文

动态sql语句基本语法(字段名,表名,数据库名之类作为变量时,必须用动态SQL如ALTER TABLE中使用程序传递的参数)...

转于:http://tmsoft.lsxy.com/index.php?load=read&id=468

1 :普通SQL语句可以用Exec执行

eg:
Select * from tableName
Exec('select * from tableName')
Exec sp_executesql N'select * from tableName' -- 请注意字符串前一定要加N

2:字段名,表名,数据库名之类作为变量时,必须用动态SQL

eg:
declare @fname varchar(20)
set @fname = 'FiledName'
Select @fname from tableName -- 错误,不会提示错误,但结果为固定值FiledName,并非所要。
Exec('select ' + @fname + ' from tableName') -- 请注意 加号前后的 单引号的边上加空格

当然将字符串改成变量的形式也可
declare @fname varchar(20)
set @fname = 'FiledName' --设置字段名

declare @s varchar(1000)
set @s = 'select ' + @fname + ' from tableName'
Exec(@s) -- 成功
exec sp_executesql @s -- 此句会报错



declare @s Nvarchar(1000) -- 注意此处改为nvarchar(1000)
set @s = 'select ' + @fname + ' from tableName'
Exec(@s) -- 成功
exec sp_executesql @s -- 此句正确

3. 输出参数
declare @num int,
@sqls nvarchar(4000)
set @sqls='select count(*) from tableName'
exec(@sqls)
--如何将exec执行结果放入变量中?

declare @num int,
@sqls nvarchar(4000)
set @sqls='select @a=count(*) from tableName '
exec sp_executesql @sqls,N'@a int output',@num output
select @num


相关文章:

  • 从几幅架构图中偷得半点海量数据处理经验
  • 17软工 第一次作业
  • [水一下]哈,露股沟
  • APUE 1 - Unix数据结构
  • stlport 编译方法
  • 自动在多个DB上执行同一条sql语句
  • this指向
  • ASCII码表
  • 扫雷游戏制作过程(C#描述):第三节、雷区绘制
  • 使用SQL中的ROW_NUMBER()和while循环对每一行执行操作
  • 关于FPGA随笔
  • 取得所有DB的名称, 形成一行, 并以逗号分隔
  • windows下安装JDK1.8和eclipse
  • LightOJ 1414 February 29(闰年统计+容斥原理)
  • C++ 日志类库 log4cplus
  • 9月CHINA-PUB-OPENDAY技术沙龙——IPHONE
  • 03Go 类型总结
  • 10个最佳ES6特性 ES7与ES8的特性
  • angular2 简述
  • AngularJS指令开发(1)——参数详解
  • crontab执行失败的多种原因
  • CSS中外联样式表代表的含义
  • JavaScript异步流程控制的前世今生
  • js中的正则表达式入门
  • PaddlePaddle-GitHub的正确打开姿势
  • python3 使用 asyncio 代替线程
  • Redux 中间件分析
  • vue自定义指令实现v-tap插件
  • Xmanager 远程桌面 CentOS 7
  • 回顾 Swift 多平台移植进度 #2
  • 前端路由实现-history
  • 山寨一个 Promise
  • 温故知新之javascript面向对象
  • linux 淘宝开源监控工具tsar
  • ​Distil-Whisper:比Whisper快6倍,体积小50%的语音识别模型
  • # centos7下FFmpeg环境部署记录
  • # 安徽锐锋科技IDMS系统简介
  • # 学号 2017-2018-20172309 《程序设计与数据结构》实验三报告
  • #pragma预处理命令
  • $().each和$.each的区别
  • $GOPATH/go.mod exists but should not goland
  • (20)目标检测算法之YOLOv5计算预选框、详解anchor计算
  • (C#)Windows Shell 外壳编程系列9 - QueryInfo 扩展提示
  • (Spark3.2.0)Spark SQL 初探: 使用大数据分析2000万KF数据
  • (二)构建dubbo分布式平台-平台功能导图
  • (附源码)springboot宠物管理系统 毕业设计 121654
  • (附源码)ssm码农论坛 毕业设计 231126
  • (四)Tiki-taka算法(TTA)求解无人机三维路径规划研究(MATLAB)
  • (一)kafka实战——kafka源码编译启动
  • (转)es进行聚合操作时提示Fielddata is disabled on text fields by default
  • (转)socket Aio demo
  • (转载)Linux 多线程条件变量同步
  • (转载)深入super,看Python如何解决钻石继承难题
  • .NET Framework与.NET Framework SDK有什么不同?
  • .NET MAUI学习笔记——2.构建第一个程序_初级篇