博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
T-SQL朝花夕拾(五) 动态T-SQL语句语法
阅读量:6080 次
发布时间:2019-06-20

本文共 1518 字,大约阅读时间需要 5 分钟。

--
方法1查询表改为动态
select
*
from
sysobjects
exec
(
'
select ID,Name from sysobjects
'
)
exec
sp_executesql N
'
select ID,Name from sysobjects
'
--
多了一个N为unicode
--
方法2:字段名,表名,数据库名之类作为变量时,用动态SQL
declare
@FName
varchar
(
20
)
set
@FName
=
'
ID
'
exec
(
'
select
'
+
@FName
+
'
from sysobjects where
'
+
@FName
+
'
=5
'
)
declare
@s
varchar
(
1000
)
set
@s
=
N
'
select
'
+
@FName
+
'
from sysobjects where
'
+
@FName
+
'
=5
'
exec
sp_executesql
@s
--
会报错
declare
@s
nvarchar
(
1000
)
--
改为nvarchar
set
@s
=
N
'
select
'
+
@FName
+
'
from sysobjects where
'
+
@FName
+
'
=5
'
exec
sp_executesql
@s
--
成功
--
方法3:输入参数
declare
@i
int
,
@s
nvarchar
(
1000
)
set
@i
=
5
exec
(
'
select ID,Name from sysobjects where ID=
'
+
@i
)
set
@s
=
'
select ID,Name from sysobjects where ID=@i
'
exec
sp_executesql
@s
,N
'
@i int
'
,
@i
--
此处输入参数要加上N
--
方法4:输出参数
declare
@i
int
,
@s
nvarchar
(
1000
)
set
@s
=
'
select @i=count(1) from sysobjects
'
--
用exec
exec
(
'
declare @i int
'
+
@s
+
'
select @i
'
)
--
把整个语句用字符串加起来执行
--
用sp_executesql
exec
sp_executesql
@s
,N
'
@i int output
'
,
@i
output
--
此处输出参数要加上N
select
@i
--
方法5:输入输出
--
用sp_executesql
declare
@i
int
,
@con
int
,
@s
nvarchar
(
1000
)
set
@i
=
5
select
@s
=
'
select @con=count(1) from sysobjects where ID>@i
'
exec
sp_executesql
@s
,N
'
@con int output,@i int
'
,
@con
output ,
@i
select
@con
--
用exec
declare
@i
int
,
@s
nvarchar
(
1000
)
set
@i
=
5
select
@s
=
'
declare @con int select @con=count(1) from sysobjects where ID>
'
+
rtrim
(
@i
)
+
'
select @con
'
exec
(
@s
)

转载地址:http://ljhgx.baihongyu.com/

你可能感兴趣的文章
利用 druid 解析器解析SQL
查看>>
Relearning PHP (2) – php 的浮点数float
查看>>
2015年读书列表
查看>>
LeetCode - Search a 2D Matrix
查看>>
【转】Eclipse上安装GIT插件EGit及使用
查看>>
以交互方式使用exp/imp的演示
查看>>
Python对文件的操作(转)
查看>>
Codeforces Round #263 (Div. 2)
查看>>
软考概述
查看>>
程序猿打新总结 6月份 新股申购秘籍
查看>>
163源报错Hash Sum mismatch 解决方法
查看>>
使用ECMAscript5中的forEach函数遍历数组
查看>>
Linux之MySQL
查看>>
jekins 持续集成手记
查看>>
Android 为应用创建、删除桌面快捷方式
查看>>
Maven如何手动添加依赖的jar文件到本地Maven仓库
查看>>
Oracle安装部署,版本升级,应用补丁快速参考
查看>>
【Android】13.0 第13章 创建和访问SQLite数据库—本章示例主界面
查看>>
CentOS6.5安装Tab增强版:bash-completion
查看>>
2015华为机试——数字基root
查看>>