﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>IT博客-sunnywang-随笔分类-learner</title><link>http://www.cnitblog.com/sunnywang/category/8291.html</link><description>      smile forever.
        
 </description><language>zh-cn</language><lastBuildDate>Mon, 26 Sep 2011 14:37:26 GMT</lastBuildDate><pubDate>Mon, 26 Sep 2011 14:37:26 GMT</pubDate><ttl>60</ttl><item><title>触发器中exec执行的查询字符串不能对内存表操作</title><link>http://www.cnitblog.com/sunnywang/archive/2009/05/13/57197.html</link><dc:creator>sunnywang   </dc:creator><author>sunnywang   </author><pubDate>Wed, 13 May 2009 06:10:00 GMT</pubDate><guid>http://www.cnitblog.com/sunnywang/archive/2009/05/13/57197.html</guid><wfw:comment>http://www.cnitblog.com/sunnywang/comments/57197.html</wfw:comment><comments>http://www.cnitblog.com/sunnywang/archive/2009/05/13/57197.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/sunnywang/comments/commentRss/57197.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/sunnywang/services/trackbacks/57197.html</trackback:ping><description><![CDATA[&nbsp;设计一个触发器，需要先生成查询字符串，再用exec执行，发现exec执行的查询字符串中若要对inserted和deleted内存表操作时，会提示对象不存在。是不是exec执行的查询字符串中不能对inserted和deleted进行操作？目前暂时采取先将inserted和deleted存储在全局临时表中，在查询字符串中对全局临时表进行操作。<br>&nbsp;&nbsp;&nbsp;&nbsp; 源代码如下：
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #0000ff">select</span><span style="COLOR: #000000">&nbsp;field&nbsp;</span><span style="COLOR: #0000ff">into</span><span style="COLOR: #000000">&nbsp;##</span><span style="COLOR: #0000ff">temp</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">from</span><span style="COLOR: #000000">&nbsp;inserted<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">declare</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #008000">@sql</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">as</span><span style="COLOR: #000000">&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">varchar</span><span style="COLOR: #000000">(</span><span style="FONT-WEIGHT: bold; COLOR: #800000">1000</span><span style="COLOR: #000000">)<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">declare</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #008000">@fieldName</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">as</span><span style="COLOR: #000000">&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">varchar</span><span style="COLOR: #000000">(</span><span style="FONT-WEIGHT: bold; COLOR: #800000">20</span><span style="COLOR: #000000">)<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">update</span><span style="COLOR: #000000">(field1)<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">set</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #008000">@fieldName</span><span style="COLOR: #808080">=</span><span style="COLOR: #ff0000">'</span><span style="COLOR: #ff0000">field1</span><span style="COLOR: #ff0000">'</span><span style="COLOR: #000000"><br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">else</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">update</span><span style="COLOR: #000000">(field2)<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">set</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #008000">@fieldName</span><span style="COLOR: #808080">=</span><span style="COLOR: #ff0000">'</span><span style="COLOR: #ff0000">field2</span><span style="COLOR: #ff0000">'</span><span style="COLOR: #000000"><br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">set</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #008000">@sql</span><span style="COLOR: #808080">=</span><span style="COLOR: #ff0000">'</span><span style="COLOR: #ff0000">insert&nbsp;table1&nbsp;(fieldName,fieldValue)&nbsp;select&nbsp;</span><span style="COLOR: #ff0000">'''</span><span style="COLOR: #808080">+</span><span style="COLOR: #008000">@fieldName</span><span style="COLOR: #808080">+</span><span style="COLOR: #ff0000">'''</span><span style="COLOR: #ff0000">,field&nbsp;from&nbsp;##temp</span><span style="COLOR: #ff0000">'</span><span style="COLOR: #000000"><br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">exec</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #008000">@sql</span><span style="COLOR: #000000"><br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">drop</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">table</span><span style="COLOR: #000000">&nbsp;##</span><span style="COLOR: #0000ff">table</span></div>
原先的代码是：<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #0000ff">declare</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #008000">@sql</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">as</span><span style="COLOR: #000000">&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">varchar</span><span style="COLOR: #000000">(</span><span style="FONT-WEIGHT: bold; COLOR: #800000">1000</span><span style="COLOR: #000000">)<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">declare</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #008000">@fieldName</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">as</span><span style="COLOR: #000000">&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">varchar</span><span style="COLOR: #000000">(</span><span style="FONT-WEIGHT: bold; COLOR: #800000">20</span><span style="COLOR: #000000">)<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">update</span><span style="COLOR: #000000">(field1)<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">set</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #008000">@fieldName</span><span style="COLOR: #808080">=</span><span style="COLOR: #ff0000">'</span><span style="COLOR: #ff0000">field1</span><span style="COLOR: #ff0000">'</span><span style="COLOR: #000000"><br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">else</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">update</span><span style="COLOR: #000000">(field2)<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">set</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #008000">@fieldName</span><span style="COLOR: #808080">=</span><span style="COLOR: #ff0000">'</span><span style="COLOR: #ff0000">field2</span><span style="COLOR: #ff0000">'</span><span style="COLOR: #000000"><br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">set</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #008000">@sql</span><span style="COLOR: #808080">=</span><span style="COLOR: #ff0000">'</span><span style="COLOR: #ff0000">insert&nbsp;table1&nbsp;(fieldName,fieldValue)&nbsp;select&nbsp;</span><span style="COLOR: #ff0000">'''</span><span style="COLOR: #808080">+</span><span style="COLOR: #008000">@fieldName</span><span style="COLOR: #808080">+</span><span style="COLOR: #ff0000">'''</span><span style="COLOR: #ff0000">,field&nbsp;from&nbsp;inserted</span><span style="COLOR: #ff0000">'</span><span style="COLOR: #000000"><br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">exec</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #008000">@sql</span></div>
<p>不知是使用方法不对还是确实有这样的限制</p>
<img src ="http://www.cnitblog.com/sunnywang/aggbug/57197.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/sunnywang/" target="_blank">sunnywang   </a> 2009-05-13 14:10 <a href="http://www.cnitblog.com/sunnywang/archive/2009/05/13/57197.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>