Azure Data Studio - 设置用作全局变量的 SQL 变量

Vol*_*rix 6 sql t-sql azure-sql-database azure-data-studio

在 Azure Data Studio (ADS) 中,是否可以在查询之间重复使用 SQL 参数?不确定我是否跳出了 ADS 的预期目的,但如果我能在一个代码文本(或任何地方)中声明一组变量并让我的所有查询理解和利用它们,那就太好了。类似于带有 Python 的 Jupyter 笔记本,如何在一个代码块中处理全局变量,而所有其他代码块都会尊重这些变量。

在此处输入图片说明

一般来说,除了官方 Microsoft 文档之外,我很难找到有关 ADS 的文档。

dfu*_*ako 7

据我所知,不会,因为变量在当前批次的范围内。

解决方法是创建一个临时表并插入该值。这确实很糟糕,但确实有效。

在代码单元#1 中:

CREATE TABLE #variableStorage (varname VARCHAR(100), val VARCHAR(100))
INSERT INTO #variableStorage
VALUES 
('SomeVariable', 'Foo')

CREATE TABLE #testing (ID INT, testval VARCHAR(100))

INSERT INTO #testing
VALUES 
(100, 'Foo')
Run Code Online (Sandbox Code Playgroud)

在代码单元#2 中:

SELECT *
from #testing

WHERE testval = (
    SELECT val 
    FROM #variableStorage 
    WHERE varname = 'SomeVariable'
    )
Run Code Online (Sandbox Code Playgroud)

  • 这让我难以置信。我知道为什么在 _T-SQL_ 上下文中存在此限制,但令我震惊的是 Azure Data Studio 没有针对 _Notebooks_ 解决此问题。事实上,它确实破坏了笔记本作为编写和注释相关代码的方式的承诺和功能。(我并不是要射击信使,而且我很欣赏这种解决方法——我只是对此感到非常惊讶。) (11认同)