Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

SQL TRY-CATCH và các cột bị thiếu

Câu hỏi (b) dễ trả lời hơn - những gì bạn đang gặp phải là kiểm tra thời gian biên dịch, vượt trội hơn TRY-CATCH hoạt động tại thời điểm chạy.

Đối với (a)

DECLARE @L_ID_FOO_BAR INT;
DECLARE @SQL NVARCHAR(MAX) = '
  SELECT @L_ID_FOO_BAR = IDFOO 
  FROM BAR
  WHERE IDFOO = 5';

BEGIN TRY
  EXEC sp_executesql @SQL, N'@L_ID_FOO_BAR INT output', @L_ID_FOO_BAR output;
END TRY
BEGIN CATCH
  SELECT @L_ID_FOO_BAR = NULL -- redundant? it starts with NULL
END CATCH


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sử dụng OUTPUT sau INSERT để lấy giá trị của cột nhận dạng thành một biến (giá trị không phải bảng)

  2. Khóa ngoại có thể là NULL và / hoặc trùng lặp không?

  3. sử dụng các giá trị đã chọn sql làm tên hàng cho một lựa chọn khác

  4. Chọn nhóm hàng phù hợp với tất cả các mục trong danh sách

  5. ADO.Net SQLCommand.ExecuteReader () làm chậm hoặc treo