Compartir por


Conexión a Synapse SQL mediante sqlcmd

Con la utilidad de línea de comandos sqlcmd puede conectarse tanto al grupo de SQL sin servidor como al grupo de SQL dedicado en Synapse SQL, así como realizar consultas en ellos.

1. Conectar

Para empezar a trabajar con sqlcmd, abra el símbolo del sistema y escriba sqlcmd seguido de la cadena de conexión de la base de datos de Synapse SQL. La cadena de conexión requiere los siguientes parámetros:

  • Servidor (-S): Servidor con el formato <Nombre del servidor>-ondemand.sql.azuresynapse.net(grupo de SQL sin servidor) o <Nombre del servidor>.sql.azuresynapse.net(grupo de SQL dedicado)
  • Database (-d): Nombre de la base de datos
  • Enable Quoted Identifiers (-I): Los identificadores entre comillas tienen que estar habilitados para poder conectarse a una instancia de Synapse SQL.

Para utilizar la autenticación de SQL Server, debe agregar los parámetros de nombre de usuario y contraseña:

  • User (-U): usuario del servidor con el formato <Usuario>
  • Password (-P): contraseña asociada con el usuario.

La cadena de conexión podría ser similar a la siguiente:

Grupo de SQL sin servidor

C:\>sqlcmd -S partyeunrt-ondemand.sql.azuresynapse.net -d demo -U Enter_Your_Username_Here -P Enter_Your_Password_Here -I

Grupo de SQL dedicado

C:\>sqlcmd -S MySqlDw.sql.azuresynapse.net -d Adventure_Works -U myuser -P myP@ssword -I

Para usar la autenticación integrada de Microsoft Entra, debe agregar sus parámetros:

  • Autenticación de Microsoft Entra (-G): utilice Microsoft Entra ID para la autenticación.

La cadena de conexión podría ser similar a la de los siguientes ejemplos:

Grupo de SQL sin servidor

C:\>sqlcmd -S partyeunrt-ondemand.sql.azuresynapse.net -d demo -G -I

Grupo de SQL dedicado

C:\>sqlcmd -S MySqlDw.sql.azuresynapse.net -d Adventure_Works -G -I

Nota:

Tiene que habilitar la autenticación de Microsoft Entra para autenticarse con Active Directory.

2. Consultar

Uso del grupo de SQL dedicado

Después de la conexión, puede emitir cualquier instrucción Transact-SQL (T-SQL) en la instancia. En este ejemplo, las consultas se envían en modo interactivo:

C:\>sqlcmd -S MySqlDw.sql.azuresynapse.net -d Adventure_Works -U myuser -P myP@ssword -I
1> SELECT name FROM sys.tables;
2> GO
3> QUIT

En el grupo de SQL dedicado, los ejemplos siguientes le muestran cómo ejecutar consultas en el modo por lotes mediante la opción -Q o mediante la canalización de su SQL a sqlcmd:

sqlcmd -S MySqlDw.sql.azuresynapse.net -d Adventure_Works -U myuser -P myP@ssword -I -Q "SELECT name FROM sys.tables;"
"SELECT name FROM sys.tables;" | sqlcmd -S MySqlDw.sql.azuresynapse.net -d Adventure_Works -U myuser -P myP@ssword -I > .\tables.out

Uso de grupos de SQL sin servidor

Después de la conexión, puede emitir cualquier instrucción Transact-SQL (T-SQL) en la instancia. En el siguiente ejemplo, las consultas se envían en modo interactivo:

C:\>sqlcmd -S partyeunrt-ondemand.sql.azuresynapse.net -d demo -U Enter_Your_Username_Here -P Enter_Your_Password_Here -I
1> SELECT COUNT(*) FROM  OPENROWSET(BULK 'https://azureopendatastorage.blob.core.windows.net/censusdatacontainer/release/us_population_county/year=20*/*.parquet', FORMAT='PARQUET')
2> GO
3> QUIT

En el caso del grupo de SQL sin servidor, los ejemplos siguientes muestran cómo ejecutar consultas en el modo por lotes mediante la opción -Q o la canalización de SQL a sqlcmd:

sqlcmd -S partyeunrt-ondemand.sql.azuresynapse.net -d demo -U Enter_Your_Username_Here -P 'Enter_Your_Password_Here' -I -Q "SELECT COUNT(*) FROM  OPENROWSET(BULK 'https://azureopendatastorage.blob.core.windows.net/censusdatacontainer/release/us_population_county/year=20*/*.parquet', FORMAT='PARQUET')"
"SELECT COUNT(*) FROM  OPENROWSET(BULK 'https://azureopendatastorage.blob.core.windows.net/censusdatacontainer/release/us_population_county/year=20*/*.parquet', FORMAT='PARQUET')" | sqlcmd -S partyeunrt-ondemand.sql.azuresynapse.net -d demo -U Enter_Your_Username_Here -P 'Enter_Your_Password_Here' -I > ./tables.out

Pasos siguientes

Para más información sobre las opciones de sqlcmd, consulte la documentación de sqlcmd.