📜  动态 SQL

📅  最后修改于: 2022-05-13 01:55:41.999000             🧑  作者: Mango

动态 SQL

先决条件 -静态和动态 SQL 之间的区别

动态 SQL是一种编程技术,可用于在运行时编写 SQL 查询。动态 SQL 可用于创建通用且灵活的 SQL 查询。

动态 SQL 的语法是使其成为字符串,如下所示:

'SELECT statement';

要运行动态 SQL 语句,请运行存储过程sp_executesql ,如下所示:

EXEC sp_executesql N'SELECT statement';

将前缀 N 与 sp_executesql 一起使用以将动态 SQL 用作 Unicode字符串。使用动态 SQL 的步骤:

  1. 声明两个变量,@var1 用于保存表名,@var 2 用于保存动态 SQL:
    DECLARE 
    @var1 NVARCHAR(MAX), 
    @var2 NVARCHAR(MAX);
  2. 将 @var1 变量的值设置为 table_name :
    SET @var1 = N'table_name';
  3. 通过将 SELECT 语句添加到表名参数来创建动态 SQL:
    SET @var2= N'SELECT * 
    FROM ' + @var1;
  4. 使用 @var2 参数运行 sp_executesql 存储过程:
    EXEC sp_executesql @var2;


例子 -

SELECT * 
from geek;

表 –极客

IDNAMECITY
1KhushiJaipur
2NehaNoida
3MeeraDelhi


使用动态 SQL:

DECLARE 
@tab NVARCHAR(128), 
@st NVARCHAR(MAX);
SET @tab = N'geektable';
SET @st = N'SELECT * 
FROM ' + @tab;
EXEC sp_executesql @st;

表 –极客

IDNAMECITY
1KhushiJaipur
2NehaNoida
3MeeraDelhi