---
# System prepended metadata

title: 執行多段指令時方便除錯的方法 ( Ex. 一次匯入幾萬筆 )

---

# 執行多段指令時方便除錯的方法 ( Ex. 一次匯入幾萬筆 )

## 語法
```
BEGIN TRANSACTION

  INSERT INTO [Order Details] (OrderID,ProductID,UnitPrice,Quantity,Discount)
  VALUES('11078','11','14.00','10','0')

  INSERT INTO [Order Details] (OrderID,ProductID,UnitPrice,Quantity,Discount)
  VALUES('11078','1111111111111111111111111111111111111','14.00','10','0')

  INSERT INTO [Order Details] (OrderID,ProductID,UnitPrice,Quantity,Discount)
  VALUES('11078','12','14.00','10','0')

  COMMIT TRANSACTION

END TRY

BEGIN CATCH

ROLLBACK TRANSACTION

--在執行完後去SELECT錯誤資訊
SELECT  
        --SELECT錯誤代碼
        ERROR_NUMBER() AS ErrorNumber  
        --SELECT錯誤行數
        ,ERROR_LINE() AS ErrorLine  
        --SELECT錯誤訊息
        ,ERROR_MESSAGE() AS ErrorMessage; 
		 
END CATCH
```
## 有錯的結果 ( 不會匯入任何資料 )
![](https://i.imgur.com/pXXdxGL.png)

## 因為可以看到 ErrorLine ( 錯誤的行數 ) 記得打開顯示行號的功能去快速找到哦
![](https://i.imgur.com/C8uIH5x.png)




[資料來源-[筆記][MSSQL]執行多段指令時(2) - 發生錯誤後的除錯方式](https://ithelp.ithome.com.tw/articles/10190296)