Skip to content
| Marketplace
Sign in
Visual Studio Code>Programming Languages>SQLCMD Syntax SupportNew to Visual Studio Code? Get it now.
SQLCMD Syntax Support

SQLCMD Syntax Support

Michele Massari

| (0) | Free
Syntax highlighting and IntelliSense support for SQL Server SQLCMD scripts
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

SQLCMD Syntax Support for VS Code

Estensione VS Code completa per il supporto della sintassi SQLCMD (SQL Server Command Line).

Funzionalità

✨ Syntax Highlighting

  • Evidenziazione completa dei comandi SQLCMD (:r, :setvar, :connect, ecc.)
  • Evidenziazione delle variabili $(VariableName)
  • Supporto per separatori batch GO
  • Syntax highlighting SQL standard (keywords, funzioni, commenti, stringhe)

🔍 Validazione in Tempo Reale

  • Verifica che i file inclusi con :r esistano
  • Controllo variabili non definite
  • Warning per variabili senza valore
  • Suggerimenti per convenzioni di codice

💡 IntelliSense

  • Autocompletamento comandi SQLCMD
  • Hover su variabili mostra valore e definizione
  • Go to Definition per file inclusi con :r
  • Snippets per comandi comuni

📝 Snippets Predefiniti

  • :r - Include file
  • :setvar - Definisci variabile
  • $() - Usa variabile
  • go - Batch separator
  • Template per post-deployment scripts
  • Gestione trigger (enable/disable)

Installazione

Metodo 1: Da Source (Consigliato per Sviluppo)

  1. Prerequisiti:

    npm install -g @vscode/vsce typescript
    
  2. Compila l'estensione:

    cd sqlcmd-support
    npm install
    npm run compile
    
  3. Crea il package VSIX:

    vsce package
    
  4. Installa in VS Code:

    • Apri VS Code
    • Vai a Extensions (Ctrl+Shift+X)
    • Click sui tre puntini (...) → "Install from VSIX..."
    • Seleziona il file sqlcmd-support-1.0.0.vsix generato

Metodo 2: Sviluppo Locale

  1. Copia la cartella sqlcmd-support in:

    • Windows: %USERPROFILE%\.vscode\extensions\
    • macOS/Linux: ~/.vscode/extensions/
  2. Riavvia VS Code

  3. Compila con:

    cd ~/.vscode/extensions/sqlcmd-support
    npm install
    npm run compile
    

Configurazione

Vai a Settings (Ctrl+,) e cerca "SQLCMD":

{
  // Valida che i file :r esistano
  "sqlcmd.validateIncludes": true,
  
  // Evidenzia le variabili SQLCMD
  "sqlcmd.highlightVariables": true
}

Uso

Associazione File

L'estensione si attiva automaticamente per:

  • File .sqlcmd
  • File .sql (con rilevamento automatico sintassi SQLCMD)

Per forzare il linguaggio SQLCMD su un file .sql:

  1. Click sulla lingua in basso a destra (o Ctrl+K M)
  2. Seleziona "SQLCMD"

Comandi Disponibili

  • SQLCMD: Validate File - Valida il file corrente (Ctrl+Shift+P → "SQLCMD: Validate File")

Esempio di Utilizzo

/*
Post-Deployment Script
*/

SET NOCOUNT ON;
GO

-- Definisci variabili
:setvar DatabaseName MyDatabase
:setvar BackupPath C:\Backups

-- Usa variabili
USE [$(DatabaseName)];
GO

-- Include file esterni
:r .\Scripts\CreateTables.sql
GO

:r .\Scripts\SeedData.sql
GO

PRINT 'Deployment completato per database $(DatabaseName)';
GO

Funzionalità Avanzate

Hover su Variabili

Passa il mouse su $(VariableName) per vedere:

  • Nome della variabile
  • Valore definito
  • Avviso se non definita

Go to Definition

Ctrl+Click su un path di file in :r .\path\to\file.sql per aprire il file.

Snippets

Digita l'abbreviazione e premi Tab:

  • post-deploy → Template completo per script post-deployment
  • disable-trigger → Disabilita trigger con controllo
  • enable-trigger → Riabilita trigger
  • check-exists → Controlla se tabella ha dati

Specifiche SQLCMD Supportate

Comandi

  • :r <filepath> - Include file esterni
  • :setvar <var> <value> - Definisce variabili
  • $(<var>) - Riferimento variabili
  • :connect <server> - Connessione server
  • :on error [exit|ignore] - Gestione errori
  • :out <filepath> - Output su file
  • :!! <command> - Esegui comando shell
  • GO [count] - Separatore batch

Pattern Riconosciuti

  • Commenti: -- e /* */
  • Stringhe: '...' e "..."
  • Numeri: Interi e decimali
  • Keywords SQL: CREATE, SELECT, INSERT, UPDATE, DELETE, ecc.
  • Funzioni SQL: COUNT, SUM, AVG, GETDATE, CAST, ecc.

Sviluppo

Struttura Progetto

sqlcmd-support/
├── package.json              # Manifest estensione
├── tsconfig.json            # Configurazione TypeScript
├── src/
│   └── extension.ts         # Logica principale
├── syntaxes/
│   └── sqlcmd.tmLanguage.json  # Grammatica TextMate
├── snippets/
│   └── sqlcmd.json          # Snippets
└── language-configuration.json  # Configurazione linguaggio

Build e Test

# Installa dipendenze
npm install

# Compila TypeScript
npm run compile

# Compila in watch mode
npm run watch

# Crea package
vsce package

Debug

  1. Apri il progetto in VS Code
  2. Premi F5 per avviare Extension Development Host
  3. Apri un file .sql o .sqlcmd nella finestra di debug

Troubleshooting

L'estensione non si attiva

  • Verifica che il file sia .sql o .sqlcmd
  • Controlla che la lingua sia impostata su "SQLCMD" (in basso a destra)
  • Riavvia VS Code

Sintassi non evidenziata

  • Compila l'estensione: npm run compile
  • Ricarica finestra: Ctrl+Shift+P → "Developer: Reload Window"

Validazione non funziona

  • Controlla le impostazioni: sqlcmd.validateIncludes
  • Verifica che i path dei file siano corretti
  • Usa path relativi o assoluti

Contribuire

Pull requests sono benvenute! Per cambiamenti importanti:

  1. Fork il repository
  2. Crea un branch per la feature (git checkout -b feature/AmazingFeature)
  3. Commit le modifiche (git commit -m 'Add AmazingFeature')
  4. Push al branch (git push origin feature/AmazingFeature)
  5. Apri una Pull Request

Roadmap

  • [ ] Supporto per debugging SQLCMD
  • [ ] Integrazione con SQL Server Management Studio
  • [ ] Formattazione automatica codice
  • [ ] Refactoring variabili
  • [ ] Test runner integrato
  • [ ] Supporto per template project

Licenza

MIT License - vedi LICENSE per dettagli

Autore

Michele - Newevo.com

Riconoscimenti

  • Basato sulle specifiche ufficiali SQLCMD di Microsoft
  • Grammatica TextMate ispirata alle convenzioni VS Code
  • Community VS Code per le best practices

Enjoy! 🚀

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2025 Microsoft