动态 SQL
先决条件–静态和动态 SQL 的区别
动态 SQL 是一种编程技术,可用于在运行时编写 SQL 查询。动态 SQL 可以用来创建通用和灵活的 SQL 查询。
动态 SQL 的语法如下所示:
'SELECT statement';
要运行动态 SQL 语句,请运行存储过程 sp_executesql ,如下所示:
EXEC sp_executesql N'SELECT statement';
使用前缀 N 和 sp_executesql 将动态 sql 用作 Unicode 字符串。
使用动态 SQL 的步骤:
-
声明两个变量,@var1 用于保存表名,@var 2 用于保存动态 SQL :
sql DECLARE @var1 NVARCHAR(MAX), @var2 NVARCHAR(MAX);
-
将@var1 变量的值设置为 table_name :
sql SET @var1 = N'table_name';
-
通过将 SELECT 语句添加到表名参数中来创建动态 SQL:
sql SET @var2= N'SELECT * FROM ' + @var1;
-
使用@var2 参数运行 sp_executesql 存储过程:
sql EXEC sp_executesql @var2;
示例–
SELECT *
from geek;
表–极客
身份证明 | 名字 | 城市 |
---|---|---|
one | 库希 | 斋浦尔 |
Two | 停止 | 无聊死了 |
three | 米拉 | 德里 |
使用动态 SQL :
DECLARE
@tab NVARCHAR(128),
@st NVARCHAR(MAX);
SET @tab = N'geektable';
SET @st = N'SELECT *
FROM ' + @tab;
EXEC sp_executesql @st;
表–极客
身份证明 | 名字 | 城市 |
---|---|---|
one | 库希 | 斋浦尔 |
Two | 停止 | 无聊死了 |
three | 米拉 | 德里 |
版权属于:月萌API www.moonapi.com,转载请注明出处