0

如何在我的 .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 
4

3 回答 3

2

您可以尝试使用SQLCMD Mode。您可以通过转到查询菜单,然后选择SQLCMD 模式在SSMS中启用此功能。

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
于 2012-11-01T20:37:51.617 回答
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
于 2012-11-01T20:16:59.940 回答
1

试试@@ServerName

代码应该是这样的

IF (@@ServerName =  'localhost') 
BEGIN
    delete MotherTable
    -- delete other tables and insert simulated production data 
END
ELSE 
    PRINT 'Wrong instance'
于 2012-11-01T20:05:57.647 回答