校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > EXEC(EXECUTE)函數訪問INSERTED或DELETED的內部臨時觸發表

EXEC(EXECUTE)函數訪問INSERTED或DELETED的內部臨時觸發表

熱門標簽:山西語音外呼系統價格 北京辦理400電話多少 重慶防封電銷機器人供應商 智能語音外呼系統哪個牌子好 溫州語音外呼系統代理 400電話申請需要開戶費嗎 南京電銷外呼系統運營商 西安青牛防封電銷卡 威海智能語音外呼系統
剛開始時,這個表的字段很少(10個以內),前開發者把這個表的所有存儲過程與觸發器以及表函數全是寫死了。用戶每添加一些字段,都需要手動去更改這些存儲過程與觸發器以及表函數。現在這個表的字段已經高達300個以上,有可能還會增長,因此Insus.NET的業務就是把這此靜態全改寫為動態處理。

然而有一個問題一直困攏至昨天,昨天是星期天本應是休息的,但是這個問題沒有解決,因此這天算不上休息了。

問題就是改寫表的觸發器,涉及到EXEC(EXECUTE)函數訪問INSERTED或DELETED的內部臨時觸發表,如:
復制代碼 代碼如下:

EXECUTE('SELECT '+ @N +' = ISNULL(['+ @I +'],0) FROM inserted')


當你嘗試執行上面的SQL語句,會得到一個異常提示:invalid object name 'inserted'。我們無法顯示訪問INSERTED或DELETED的內部臨時觸發表。

由于INSERTED或是DELETED表是動態駐留在內存中,而不是存儲在數據庫中,它不是顯式的。觸發器的執行是在導致觸發器被觸發的執行計劃中。當我們使用EXEC(EXECUTE)或sp_executesql執行動態生成的SQL語句時,它卻是另外一個單獨的執行計劃。兩者之間的資源無法相互訪問,再加上計劃執行完畢,內存也隨之釋放資源了。

但是問題還是需要解決,Insus.NET想起的還是臨時表。可以把INSERTED或DELETED表中的數據,首先轉換入臨時表了。這樣子,我們就可以對臨時表的數據進行處理了。

復制代碼 代碼如下:

SELECT * INTO #inserted FROM INSERTED
SELeCT * INTO #deleted FROM DELETED



實現代碼:

復制代碼 代碼如下:

DECLARE @F NVARCHAR(MAX) = CONVERT(NVARCHAR(MAX),@I) --@I動態字段
EXECUTE ('SELECT ['+ @F +'] FROM #deleted)

標簽:濟寧 中衛 貸款群呼 新余 宜春 黃山 河源 金昌

巨人網絡通訊聲明:本文標題《EXEC(EXECUTE)函數訪問INSERTED或DELETED的內部臨時觸發表》,本文關鍵詞  EXEC,EXECUTE,函數,訪問,INSERTED,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《EXEC(EXECUTE)函數訪問INSERTED或DELETED的內部臨時觸發表》相關的同類信息!
  • 本頁收集關于EXEC(EXECUTE)函數訪問INSERTED或DELETED的內部臨時觸發表的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 九江市| 乌兰浩特市| 沙坪坝区| 民权县| 深圳市| 蓬安县| 唐山市| 大关县| 湟源县| 会宁县| 高平市| 云浮市| 竹溪县| 疏附县| 河源市| 凤阳县| 托克逊县| 潼关县| 中牟县| 含山县| 林周县| 宝应县| 民勤县| 炎陵县| 云安县| 北碚区| 泰安市| 兴宁市| 莱西市| 汝城县| 盘山县| 葫芦岛市| 莱芜市| 女性| 石渠县| 林州市| 普洱| 思茅市| 抚顺县| 团风县| 沾益县|