Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

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

Đang mở
#785 0 bình luận 0 reaction 0 người được giao Xem trên GitHub

Chưa có ai nhận issue này.

Đánh giá

Độ khó
3/5
Thời gian dự kiến
1-2 ngày
Mức phù hợp với người mới
52/100
Loại issue
Lỗi
Độ rõ ràng
Khá rõ ràng
Mức độ hoạt động
Ít trao đổi
Công nghệ
go, sql
Lĩnh vực
cli

Hướng nghiên cứu

Bắt đầu bằng cách tái hiện lệnh RAISERROR ('Message', 20, 1) WITH LOG trong go-sqlcmd bằng tài khoản sysadmin, sau đó so sánh hành vi của lệnh này với ODBC sqlcmd và xem xét phần giải quyết trong microsoft/go-sqlcmd#76. Theo dõi cách go-sqlcmd phát hiện việc kết thúc kết nối SQL Server; hoàn tất khi lệnh báo lỗi nghiêm trọng và thoát thay vì bị treo.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

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!

Ngôn ngữ chính
Go
Star
604
Fork
91
Chỉ số merge pull request
Không có pull request nào được merge trong 30 ngày

Chuẩn bị môi trường

Mở trong Codespaces

Khởi chạy dev container của dự án ngay trên trình duyệt, bằng tài khoản GitHub của bạn.

  • Có Dockerfile hoặc tệp Docker Compose
  • Không có mẫu pull request
  • Không có hướng dẫn đóng góp

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của microsoft/go-sqlcmd

Tất cả issue của microsoft/go-sqlcmd

Issue tương tự

Thêm issue về Go

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.