- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个很大的生成脚本。它有多个批次( GO
语句)。第一行是 BEGIN TRAN
如果在执行过程中发生任何错误,请使用 RAISERROR
提出自己,或者是SQL Server引发的,我想回滚事务。我希望脚本继续执行直到最后,然后回滚,而不是在发生任何错误时立即中止执行。
正在检查 @@error <> 0
在脚本的末尾似乎还不够,因为如果脚本中的最后一条语句成功,@@error 将为 0,即使之前的语句失败。
我不能申报 @rollback BIT
一开始因为脚本被分割成多个批次,所以变量超出了范围。
我明白 RAISERROR
并不意味着我的交易将被回滚。
关于以 SQL 2000 兼容方式实现这一点的最佳方式有什么建议吗?
1 Câu trả lời
您可以随时使用 SET CONTEXT_INFO
传递“带外”信息,稍后使用 CONTEXT_INFO()
阅读它.如果发生错误,请将上下文信息设置为您在提交前检查的值。
这回答了你如何做的问题,但我真的必须首先表达我对为什么要这样做的怀疑。因为许多错误无论如何都会中止事务,因此您可能会盲目地继续相信继续和回滚是安全的,但发现在异常提交后没有任何回滚和所有错误的脚本。其次,对于异常比不中止事务,做任何工作只回滚它还是很值得怀疑的。你的要求是如此与众不同,以至于我不得不怀疑你是否真的了解你所做的一切的含义。
关于sql-server - 错误回滚事务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8252265/
Tuần này tôi đang thiết lập một máy SQL Server 2005 chuyên dụng trên Windows Server 2008 và muốn đơn giản hóa nó hết mức có thể nhưng vẫn đảm bảo đầy đủ chức năng. Vì lý do này, tùy chọn Server Core nghe có vẻ hấp dẫn.
Đã đóng. Câu hỏi này không đáp ứng được hướng dẫn của Stack Overflow. Hiện tại không chấp nhận câu trả lời. Câu hỏi này có vẻ không liên quan đến lập trình trong phạm vi được xác định trong trung tâm trợ giúp. . Đã đóng cửa 8 năm trước. Cải thiện
Tôi đã sao lưu cơ sở dữ liệu phiên bản 2014 và thử khôi phục nó trên một máy chủ khác với cơ sở dữ liệu có cùng tên và thông tin đăng nhập. Phiên bản SQL Server này là 2016. Khi khôi phục tệp sao lưu, lỗi này xảy ra: TITLE: Micr
Tôi đã sao lưu cơ sở dữ liệu phiên bản 2014 và thử khôi phục nó trên một máy chủ khác với cơ sở dữ liệu có cùng tên và thông tin đăng nhập. Phiên bản SQL Server này là 2016. Khi khôi phục tệp sao lưu, lỗi này xảy ra: TITLE: Micr
TFS có cung cấp bất kỳ cách nâng cao nào để lưu trữ những thay đổi được thực hiện trên cơ sở dữ liệu SQL Server ngoài việc sử dụng nó để kiểm soát phiên bản tệp văn bản các câu lệnh SQL được thực thi trên cơ sở dữ liệu không? Hoặc chức năng tôi đang tìm kiếm chỉ có sẵn trong các công cụ của bên thứ 3 như
đóng cửa. Câu hỏi này cần được hỏi một cách tập trung hơn. Hiện tại không chấp nhận câu trả lời. Bạn có muốn cải thiện điều này không? Cập nhật câu hỏi để tập trung vào một vấn đề duy nhất bằng cách chỉnh sửa bài đăng này. Đã đóng 9 năm trước. Cải thiện câu hỏi này
Tôi sắp nâng cấp phiên bản SQL Server 2012 của mình lên SQL Server 2014. Tôi đã sao chép một máy chủ Windows VM và đổi tên nó từ foo-2012 thành foo-2014. Khi tôi khởi động lại
Tôi muốn cấp quyền truy cập vào cơ sở dữ liệu cho người dùng đăng nhập SQL Server. Tôi biết về sp_grantdbaccess, nhưng nó đã lỗi thời. Tôi có thể sử dụng gì thay thế và làm sao để kiểm tra xem thông tin đăng nhập có được phép truy cập vào cơ sở dữ liệu hay không? Kịch bản: Người dùng A tạo một cơ sở dữ liệu
Khách hàng không còn lựa chọn nào khác ngoài việc di chuyển từ SQL Server 2000 sang 2008 trong vài ngày tới. Việc thử nghiệm cho thấy hiệu suất suy giảm không thể chấp nhận được đối với các tính năng quan trọng vào năm 2005, nhưng không phải vào năm 2008. Tin tốt là
Tôi có một cơ sở dữ liệu thử nghiệm cần xuất sang môi trường thử nghiệm của khách hàng. Đây sẽ là công việc chỉ làm một lần. Tôi đang sử dụng SQL Server 2005 (cơ sở dữ liệu thử nghiệm của tôi là SQL Server 2005 Express) để thực hiện điều này
Tôi cần nhập tệp CSV vào mongoDB Thật không may, tôi nhận được lỗi sau: lỗi kết nối với máy chủ: không thể kết nối với máy chủ: se
Tôi nghĩ R2 là bản vá/gói dịch vụ. Tôi đang tìm bản tải xuống nhưng không thấy. Vậy tôi cho rằng R2 là phiên bản mới và tôi cần phương tiện cài đặt cho SQLServer 2008 R2 để nâng cấp? Ngoài ra, tôi có cần phải trả tiền để cấp giấy phép mới không?
Tôi không thể kết nối với SQL Server bằng SQL Server Management Studio. Tôi có một chuỗi kết nối: Tôi đã thử kết nối bằng cách nhập myIP vào Tên máy chủ, MyID vào Tên đăng nhập,
Chúng tôi muốn mã hóa nhiều cột trong cơ sở dữ liệu của mình bằng mã hóa SQL Server. Chúng ta cũng cần chuyển dữ liệu giữa môi trường sản xuất và môi trường thử nghiệm. Có vẻ như giải pháp tốt nhất là sử dụng cùng một khóa chính, chứng chỉ và khóa đối xứng trên cả máy chủ sản xuất và máy chủ thử nghiệm để tôi có thể
Có công cụ nào có thể phân tích cơ sở dữ liệu SQL Server để tìm ra các vấn đề tiềm ẩn không? Ví dụ: một cột khóa ngoại không được lập chỉ mục sẽ không có FILL FACTOR duy nhất
Tôi đang cố gắng thiết lập sao chép từ phiên bản SQL 2012 BI của mình, nhưng tôi nhận được thông báo lỗi lạ! "Bạn không thể tạo ấn phẩm từ máy chủ 'X' vì
Nếu bạn đang sử dụng SQL Server Authentication (2005), thông tin đăng nhập có được gửi qua mạng dưới dạng văn bản thuần túy không? Câu trả lời tốt nhất là an toàn như bạn muốn... Bạn có thể cấu hình SSL khá dễ dàng nếu bạn không có chứng chỉ đáng tin cậy, nếu bạn buộc
Tôi muốn sao chép dữ liệu từ bảng này sang bảng khác giữa các máy chủ khác nhau. Nếu nó nằm trên cùng một máy chủ và các cơ sở dữ liệu khác nhau, tôi đã sử dụng lệnh sau SELECT * INTO DB1..TBL1 FROM DB2..TBL1 (để sao chép
Tôi hy vọng nhận được sự trợ giúp vì tôi đã gặp vấn đề này trong 2 ngày nay! Tình huống: Tôi có thể kết nối tới SERVER\INSTANCE từ máy phát triển của tôi (và các đồng nghiệp khác), nhưng không thể kết nối từ SQL Server khác. Lỗi tôi nhận được
Tôi đang cố gắng thiết lập sao chép từ phiên bản SQL 2012 BI của mình, nhưng tôi nhận được thông báo lỗi lạ! "Bạn không thể tạo ấn phẩm từ máy chủ 'X' vì
Tôi là một lập trình viên xuất sắc, rất giỏi!