SQL Server 2008 R2 Enterprise Edition'ı kullanma
Aşağıdaki ifadeyi düşünün:
:setvar source_server_name "SERVERNAME\INSTANCENAME"
SQLCMD modunda TSQL kullanarak bu değeri elde etmek mümkün mü
Gibi bir şey: :setvar source_server_name = SELECT @@servername
teşekkür ederim
Güncelleme 15.07.2013
Aşağıda sunulan iki cevap istenen sonucu vermedi, bu yüzden daha alakalı bir inceleme ekliyorum.
:setvar source_server_name [myserver]
Source_server_name değişkeni [myserver_1] metin dizesine ayarlandı
Bunu yapabilmek istiyorum:
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
Source_server_name değişkeni, kimlik 1 için sunucudaki değere ayarlanır.
Farkında olduğumdan ya da anlayabildiğimden değil.
Sqlcmd değişkenleri istemci tarafından, sql sunucuya gönderilmeden önce müşteri tarafından değerlendirildiğinden, sizin için ne istediğinizi mümkün değildir. Bu yüzden sql sunucusunun hiç görmediği bir değişkenin değerini ayarlamasını istiyorsunuz. Sqlcmd değişkenleri olan bir sql betiğinde bir sql profiler izlemesi çalıştırın ve bunların hepsinin zaten değerlendirildiğini göreceksiniz.
—
Tim Abell