use database with conditional statement
sql, sql-server-2008
Solution
One more options
Add linked servers sp_addlinkedserver
Mapping between a login local instance and remote server sp_addlinkedsrvlogin
Something like:
sp_addlinkedserver
@server= N'srvrA',
@srvproduct= N'',
@provider= N'SQLNCLI',
@datasrc= N'srvrA';
sp_addlinkedsrvlogin
@rmtsrvname = 'srvrA' ,
@useself = 'FALSE' ,
@locallogin = 'your_local_login' ,
@rmtuser = 'your_remote_login' ,
@rmtpassword = 'your_password'
And then your script will look like
DECLARE @@srvname nvarchar(10) = 'srvrA'
IF (@@servername = @@srvname)
BEGIN
SELECT *
FROM srvrA.dbA.your_schema.your_table
END
ELSE
BEGIN
SELECT *
FROM srvrB.dbB.your_schema.your_table
END
Problem
I need to execute a script in 2 different servers having different db names but same tables and data. For this, I tried using the following statement. ``` if (@@servername= 'srvrA') begin use dbA end else begin use dbB end ``` But for srvrB, it says Database dbA does not exist. Could someone help me achieving this?