2008-12-03 45 views
26

Estoy interesado en utilizar algún tipo de utilidad de línea de comandos para SQL Server similar a SQL * Plus de Oracle. SQL Server parece tener varias opciones: osql, isql y sqlcmd. Sin embargo, no estoy seguro de cuál usar.¿Cuáles son las diferencias entre osql, isql y sqlcmd?

¿Todos hacen esencialmente lo mismo? ¿Hay alguna situación en la que sea preferible usar una sobre las otras?

Respuesta

28

Use sqlcmd-- es el producto más completo.

  • Sqlcmd: El último, la interfaz de línea de comandos más lujoso para SQL Server.
  • isql: El antiguo modo DB-Library (protocolo de SQL Server nativo) de comunicación de línea de comandos con SQL Server.
  • osql: La forma más antigua basada en ODBC de comunicación de línea de comandos con SQL Server.

EDIT: Los tiempos han cambiado desde que respondí en este hace un par de años. Hoy en día, también puede usar el cmdlet invoke-sqlcmd en PowerShell. Si está acostumbrado a PowerShell o planea hacer scripts de cualquier sofisticación, use esto en su lugar.

8

no estoy seguro de cuál es el alcance de su pregunta es, pero creo:

isql utiliza DB-Library para comunicarse con el servidor y ya no se incluye después de SQL2000

osql utiliza ODBC para comunicarse con el servidor y ya no se incluirá después de SQL2005

sqlcmd usó OLE DB para comunicarse con el servidor y actualmente es la herramienta de línea de comandos recomendada.

+1

'osql' está siendo incluido:' C: \ Archivos de programa \ Microsoft SQL Server \ 120 \ Tools \ Binn \ OSQL.EXE' – Mark

+0

osql es aún incluido en SQL2016, C: \ Archivos de programa (x86) \ Microsoft SQL Server \ 140 \ Tools \ Binn \ OSQL.EXE – Rick

5

Siempre es mejor usar SQLCMD en lugar de OSQL o ISQL si tiene SQL SERVER 2005; de lo contrario, use OSQL en lugar de ISQL.

Microsoft ha anunciado antes que ISQL estaba a punto de desaparecer. Efectivamente, ISQL no está incluido en SQL Server 2005 RTM. OSQL finalmente se eliminará también, aunque todavía se incluye en la instalación binaria de SQL Server 2005. Con el ciclo de lanzamiento de SQL Server histórica en mente, tal vez OSQL nos adiós en 2010.

SQLCMD tiene muchas ventajas como a continuación:

  • 1) En cuanto al rendimiento
  • 2) SQLCMD compatible con las variables parametrizadas
  • apoyo
  • 3) SQLCMD personalizada editor
  • 4): XML [ONOFF]
  • 5): Error STDERRSTDOUT
  • 6): Perftrace STDERRSTDOUT
  • 7) de conexión de administración remota dedicada (DAC)
Cuestiones relacionadas