台灣最大程式設計社群網站
線上人數
513
 
會員總數:245127
討論主題:189033
歡迎您免費加入會員
討論區列表 >> MS SQL >> 如何在 Trigger 取得剛新增的欄位內容(text欄位型態)
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
如何在 Trigger 取得剛新增的欄位內容(text欄位型態)
價值 : 10 QP  點閱數:4026 回應數:3

樓主

Blue
初學者
322 89
1024 169
發送站內信

Hi,各位先進大家好:
在Trigger中取得目前新增的欄位值可使用 select xxx from inserted,
但若該欄位為 text型態時會出現如下訊息,
無法在 'inserted' 和 'deleted' 資料表上使用 text、ntext 或 image 資料行。
有何辦法可解決?
謝謝!

本篇文章發表於2007-03-18 07:37
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
不錯的參考

Phil
捐贈 VP 給 Phil 檢舉此回應
ms-help://MS.SQLCC.v9/MS.SQLSVR.v9.zh-CHT/tsqlref9/html/edeced03-decd-44c3-8c74-2c02f801d3e7.htm
AFTER triggers do not support text, ntext, or image data in the inserted and deleted tables, INSTEAD OF triggers do support them.
本篇文章回覆於2007-03-19 22:14
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
最有價值解答

小君
捐贈 VP 給 小君 檢舉此回應
線上叢書裡頭有說:
  在 DELETE、INSERT 或 UPDATE 觸發程序中,如果相容性層級設為 70,SQL Server 不允許參考 inserted 和 deleted 資料表中之 text、ntext 或 image 資料行。inserted 和 deleted 資料表中之 text、ntext 或 image 值無法存取。若要擷取 INSERT 或 UPDATE 觸發程序中的新值,請將 inserted 資料表和原始更新資料表聯結起來。當相容性層級是 65 或以下時,允許 Null 值的 inserted 或 deleted text、ntext 或 image 資料行會傳回 Null 值;如果資料行不可設為 Null,便會傳回長度為零的字串。

  如果相容性層級是 80 或以上,SQL Server 便允許利用資料表或檢視的 INSTEAD OF 觸發程序來更新 text、ntext 或 image 資料行。

重要:
  在未來的 Microsoft SQL Server 版本中,將移除 ntext、text 和 image 等資料類型。請避免在新的開發工作中使用這些資料類型,並規劃修改目前在使用這些資料類型的應用程式。請改用 nvarchar(max)、varchar(max) 和 varbinary(max)。AFTER 和 INSTEAD OF 觸發程序都支援 inserted 或 deleted 資料表中的 varchar(MAX)、nvarchar(MAX) 和 varbinary(MAX) 資料。
本篇文章回覆於2007-03-24 00:05
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
回應

Honli
檢舉此回應
在 'inserted' 和 'deleted' 之後
再利用一次 select ntext欄位 from 表格 Where insert 或 delet 的資料
就可以了
本篇文章回覆於2018-11-11 13:50
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.