SQLCMD (Local) czy 127.0.0.1

0

Mam pytanie czy zapis:
sqlcmd -S (local)\SqlExpress -U XX -P XXXXX -i C:\SQLTASK_TEST\KOSZTY_1.sql
Jest poprawny i odeśle do lokalnego serwera SqlExpress?

KOSZTY_1.sql
USE [KALKULACJE] exec PR_1_CENY_EXCEL

W sieci ma kilka serwerów ale akurat zależy mi na tym aby to odbywało się na tym lokalnym serwerze.
Można to zastąpić nazwą kompa (ale nie jest uniwersalne) czy lepiej ciągiem 127.0.0.1 zamiast (local).

1

Ekspertem w tych kwestiach nie jest ani ich nie lubię, zazwyczaj połączenie jest już skonfigurowane i się nie muszę tym bawić, ale się wypowiem.
Zazwyczaj nie ma znaczenia ale może zależeć od konfiguracji. Z tego co wiem (local) łączy się z lokalną maszyną po named pipes, natomiast po podaniu adresu IP 127.0.0.1 łączymy się przez TCP/IP co może być wolniejsze. Jedno z tych połączeń może zupełnie nie działać zależnie co jest aktywowane i dostępne na maszynie i serwerze. To skrajny przypadek ale przykładowo bez zainstalowanego interfejsu sieciowego w ogóle nie można się łączyć po IP nawet po loopback adresie. localhost może się odbić od dnsa lub zostać podmieniony w pliku hosts co może być plusem lub minusem zależy jak na to spojrzeć.
Ja bym został przy (local), albo w ogóle się tym nie przejmował

0

Jedyny "problem" to konieczność zmiany skryptu przy zmianie IP serwera.
Wydaje się że (local) jest bardziej uniwersalny.

0

(local), .,nazwakomputera to synonimy więc nie ma znaczenia którego użyjesz.

obscurity napisał(a):

Z tego co wiem (local) łączy się z lokalną maszyną po named pipes, natomiast po podaniu adresu IP 127.0.0.1 łączymy się przez TCP/IP co może być wolniejsze

Nie, nazwa serwera nie wpływa na protokól połączenia mogę wymusić konkretne połączenie odpowiednio definiując connection string, jeżeli jednak tego nie zrobimy to decyduje konfiguracja SQL Servera

1 użytkowników online, w tym zalogowanych: 0, gości: 1