如何在 SQL Server 中声明全局变量..? [英] how to declare global variable in SQL Server..?

查看:100
本文介绍了如何在 SQL Server 中声明全局变量..?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想对来自不同数据库的不同查询使用相同的值

I want to use same value for different queries from different DB

喜欢

DECLARE @GLOBAL_VAR_1 INT = Value_1

DECLARE @GLOBAL_VAR_2 INT = Value_2

USE "DB_1"
GO
SELECT * FROM "TABLE" WHERE "COL_!" = @GLOBAL_VAR_1 

AND "COL_2" = @GLOBAL_VAR_2

USE "DB_2"
GO

SELECT * FROM "TABLE" WHERE "COL_!" = @GLOBAL_VAR_2 

但它给出了错误.

必须声明标量变量@GLOBAL_VAR_2".

Must declare the scalar variable "@GLOBAL_VAR_2".

任何人都可以建议任何方法来做到这一点......?

Can any one suggest any way to do it...?

推荐答案

在 Transact-SQL 中无法声明全局变量.但是,如果您希望变量可以跨单个脚本的批处理访问,则可以使用 SQLCMD 工具或 SSMS 的 SQLCMD 模式 并定义该工具/mode 特定的变量像这样:

There is no way to declare a global variable in Transact-SQL. However, if all you want your variables for is to be accessible across batches of a single script, you can use the SQLCMD tool or the SQLCMD mode of SSMS and define that tool/mode-specific variables like this:

:setvar myvar 10

然后像这样使用它们:

$(myvar)

使用 SSMS 的 SQLCMD 模式:

To use SSMS's SQLCMD mode:

这篇关于如何在 SQL Server 中声明全局变量..?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆