0

.sqlスクリプトで、ローカルホストSQLサーバーの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モードを使用してみてください。SSMSでこれを有効にするには、[クエリ]メニューに移動し、[ SQLCMDモード]を選択します。

SQLCMDモードでは、変数を定義したり、1つのサーバーに接続してコードを実行したり、2番目のサーバーに接続してコードを実行したりできます。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 に答える