SQL 不支持 'USE' 时如何保护执行
How to guard execution when 'USE' not supported in SQL
当我草拟 SQL 语句时,我有一个文件,其中包含我用来分析实时数据的所有查询。每次我在文件末尾写一个新语句或一组语句时,我 select 它们并单击 'execute' 以查看结果。我很偏执,我可能会忘记 selection 阶段,并且不小心 运行 整个文件中的所有查询顺序,所以我用行
作为文件的开头
USE FakeDatabase
这样查询将失败,因为它们将 运行 针对不存在的数据库。但是不,我得到了错误
USE statement is not supported to switch between databases
(N.B。我正在对 v12 Azure SQL 服务器数据库使用 SQL Server Management Studio v17.0 RC1。)
我可以使用什么 tSQL 语句来防止在文件中进一步执行 tSQL 语句?
相反,您可以在每个脚本中放置类似这样的内容:
IF @@SERVERNAME <> 'Not-Really-My-Server'
BEGIN
raiserror('Database Name Not Set', 20, -1) with log
END
-- Rest of my query...
AZURE 不支持使用...您可以在下面尝试,但根据您的用例,可以有很多选项
用以下语句替换 use Database
if db_name() <>'Fakedatabase'
return;
当我草拟 SQL 语句时,我有一个文件,其中包含我用来分析实时数据的所有查询。每次我在文件末尾写一个新语句或一组语句时,我 select 它们并单击 'execute' 以查看结果。我很偏执,我可能会忘记 selection 阶段,并且不小心 运行 整个文件中的所有查询顺序,所以我用行
作为文件的开头USE FakeDatabase
这样查询将失败,因为它们将 运行 针对不存在的数据库。但是不,我得到了错误
USE statement is not supported to switch between databases
(N.B。我正在对 v12 Azure SQL 服务器数据库使用 SQL Server Management Studio v17.0 RC1。)
我可以使用什么 tSQL 语句来防止在文件中进一步执行 tSQL 语句?
相反,您可以在每个脚本中放置类似这样的内容:
IF @@SERVERNAME <> 'Not-Really-My-Server'
BEGIN
raiserror('Database Name Not Set', 20, -1) with log
END
-- Rest of my query...
AZURE 不支持使用...您可以在下面尝试,但根据您的用例,可以有很多选项
用以下语句替换 use Database
if db_name() <>'Fakedatabase'
return;