SQL Server監控与診斷

僅為記錄工作中遇到的問題.

1. 字符串截斷:

  SQL server里很多job用於運行DTS,經常會收到系統出錯警報,如:

 

...String or binary data would be truncated. [SQLSTATE 22001] (Error 8152) The statement has been terminated. [SQLSTATE 01000] (Error 3621). The step failed.

  原因:字符串長度不符,如需要插入的表字段數據長度為100,而目標表字段屬性長度為64,則會出現該問題.

  解決方法:1. 修改目標表字段屬性,如增加目標表字段長度;2.對插入數據進行預處理,使數據符合目標表格式.

 

2. 長DBName的使用注意事項

  在job的steps中使用Transact-SQL去在某個特定數據執行Transact-SQL命令時,會出現如果如果數據庫命太長,則會被截斷的問題,如:

  Use abc_abccccccc_eeeeeeeeee_cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc; exec ....

  執行時會出現錯誤:

Database 'abc_abccccccc_eeeeeeeee' does not exist.

  原因:自動截斷DBName字符串

  解決方法:在Transact-SQL中use table時,注意加上"[ ]",如

  

Use [abc_abccccccc_eeeeeeeeee_cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc]; exec ....

 

posted @ 2018-06-12 16:52  RiocasTure  阅读(225)  评论(0编辑  收藏  举报