Utilizzo di SQL Server 2008 R2 Enterprise Edition
Considera la seguente dichiarazione:
:setvar source_server_name "SERVERNAME\INSTANCENAME"
È possibile in modalità SQLCMD ottenere quel valore usando TSQL
Qualcosa di simile a: :setvar source_server_name = SELECT @@servername
Grazie
Aggiornamento del 15/07/2013
Le due risposte offerte di seguito non hanno dato il risultato desiderato, quindi sto aggiungendo un esempio più rilevante.
:setvar source_server_name [myserver]
La variabile source_server_name è impostata sulla stringa di testo [myserver_1]
Mi piacerebbe essere in grado di fare questo:
create table #tmp(
id int identity(1,1),
server sysname
)
insert into #tmp values('myserver_1'),('myserver_2');
:setvar source_server_name = SELECT server FROM #tmp WHERE id = 1
select '$(source_server_name)'
(No column name)
myserver_1
La variabile source_server_name verrebbe impostata sul valore nel server per id 1.