我在TSQL查询中使用变量。随着我的脚本的增长,我将每个部分分开GO
,现在问题是我需要访问脚本顶部的变量。
我怎样才能访问这些变量?
希望这是一件简单明了的事。
全部谢谢
答案 0 :(得分:8)
GO用于分隔批次的t-sql,变量具有局部范围,并且仅在定义它们的批处理或过程中可见。
您最好的方法可能是将全局内容存储在临时表中,或者如果它们是常量则创建存储过程。在运行时拉它们。
答案 1 :(得分:2)
迟到了,但是如果你正在使用SSMS,你可以将它放在SQLCMD Mode中并以这种方式定义变量。一旦定义了变量,就无法更改变量,但仍然很容易知道。
:setvar MyVariable "FooBar"
Select Foo from Bar where FooBar = '$(FooBar)'
GO
Insert Into Bar(FooBar) Values ('$(FooBar)')
GO
答案 2 :(得分:0)
有类似的问题。
我的解决方案:
IF OBJECT_ID('tempdb..#range') IS NOT NULL DROP TABLE #range
GO
SELECT '06/01/15' STARTING_DATE, '06/30/15' ENDING_DATE
INTO #range
GO
SELECT f.*
FROM foo f
INNER JOIN #range r ON f.date_field BETWEEN r.starting_date AND r.ending_date
GO
SELECT b.*
FROM bar b
INNER JOIN #range r ON b.date_field BETWEEN r.starting_date AND r.ending_date
GO
IF OBJECT_ID('tempdb..#range') IS NOT NULL DROP TABLE #range
GO