在 Azure Data Studio 中尝试 SQL Notebooks,但在一个单元格中声明的变量未传递到新单元格

Nis*_*san 10 sql-server jupyter-notebook azure-data-studio

我正在尝试使用 SQL 笔记本,就像我习惯使用 Jupyter 笔记本来记录我使用的一些标准查询一样。但是,当我在一个单元格中声明表变量时,无法在新单元格中访问该值。我这样做是为了可以注释每个单元格以解释我为什么要执行这些操作。这是 SQL Notebook 的限制吗?或者我缺少一份声明吗?

Azure Data Studio 错误的屏幕截图

Ali*_*aky 5

有一个解决方法,使用 SQL 本身和会话上下文来声明块之间的变量。

\n

请参阅此处:\n https://www.ericgharrison.com/?p=418

\n

通过会话上下文设置,我们可以使用 sp_set_session_context\xe2\x80\xa6 存储值

\n

EXEC sp_set_session_context \'StartDate\', \'11/01/2020\'\nEXEC sp_set_session_context \'EndDate\', \'11/01/2020 23:59:59.99\'

\n

\xe2\x80\xa6,然后在另一个代码块中检索并使用它们:

\n

声明 @StartDate DATETIME\n声明 @EndDate DATETIME\nSELECT @StartDate = CAST(SESSION_CONTEXT(N\'StartDate\') AS DATETIME)\nSELECT @EndDate = CAST(SESSION_CONTEXT(N\'EndDate\') AS DATETIME)

\n