Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

RAISERROR ('Message', 20, 1) WITH LOG causes SQLCMD to hang

Aperta
#785 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
3/5
Tempo stimato
1-2 giorni
Idoneità per principianti
52/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Tranquilla
Stack tecnologico
go, sql
Ambito
cli

Direzione di ricerca

Inizia riproducendo il comando RAISERROR ('Message', 20, 1) WITH LOG in go-sqlcmd con un account sysadmin, quindi confrontane il comportamento con ODBC sqlcmd ed esamina la risoluzione parziale in microsoft/go-sqlcmd#76. Traccia il modo in cui go-sqlcmd rileva la terminazione della connessione SQL Server; l'attività è completata quando il comando segnala l'errore irreversibile ed esce invece di rimanere bloccato.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

When you execute the following command using a sysadmin account, SQLCMD hangs:

RAISERROR ('Message', 20, 1) WITH LOG

Noted this was mentioned in https://github.com/microsoft/go-sqlcmd/issues/76
That issue was closed with only a partial resolution to the issue.

Problem is caused by SQL Server forcibly terminating the connection - go-sqlcmd doesn't realise this has happened so gets into an undefined state and never exits.

https://learn.microsoft.com/en-us/sql/t-sql/language-elements/raiserror-transact-sql?view=sql-server-ver17

"Severity levels from 20 through 25 are considered fatal. If a fatal severity level is encountered, the client connection is terminated after receiving the message, and the error is logged in the error and application logs."

Workaround for me is to set the third parameter of RAISERROR (state) to 127 rather than 1 - but I'd rather it worked the same as ODBC sqlcmd does!

Lingua principale
Go
Stelle
595
Fork
91
Merge medio
9h 35m
PR unite (30g)
1

Preparare l'ambiente

Non abbiamo ancora controllato i file di configurazione di questo progetto. Parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di microsoft/go-sqlcmd

Tutte le issue di microsoft/go-sqlcmd

Issue simili

Altre issue su Go

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.