如何在我的.sql脚本中指定它只对我的localhost sql server db实例执行而不是在另一个打开的连接上执行我的集成或测试环境呢?
dbsetupscript.sql
use myDB
--WHAT SAFE GAURD CAN i PUT HERE TO ENSURE THAT THIS SCRIPT CAN ONLY BE EXECUTED VIA MY
-- LOCAL ENVIRONMENT BEFORE I START DELETING TABLES, ETC?
delete MotherTable
-- delete other tables and insert simulated production data
答案 0 :(得分:2)
您可以尝试使用 SQLCMD模式。您可以在 SSMS 中启用此功能,方法是转到查询菜单,然后选择 SQLCMD模式。
SQLCMD模式允许您定义变量,连接到一个服务器运行一些代码,连接到第二个服务器运行一些代码等。您甚至可以弹出并运行DOS /命令行命令。
您可以在此处找到更多语法信息:http://msdn.microsoft.com/en-us/library/ms174187.aspx
以下是一个让您入门的示例:
-- which server do you want to connect to?
:setvar MyServer ServerName\InstanceName
-- connect to that server
:connect $(MyServer)
-- run your query
select @@servername, @@version
go
答案 1 :(得分:1)
代码应该是这样的
IF (@@ServerName = 'localhost')
BEGIN
delete MotherTable
-- delete other tables and insert simulated production data
END
ELSE
PRINT 'Wrong instance'
答案 2 :(得分:1)
if
(
Select CASE when HOST_NAME()='Bummi-Mobi' then 1 else 0 end + Case when DB_NAME()='test' then 1 else 0 end
)<>2
raiserror('Wrong Database', 20, -1) with log