更新NText列

时间:2009-09-29 09:40:50

标签: sql sql-server

在我的NText列中,我在<script type='text/javascript'> </script>标记之间有一些数据。

我想用以下数据替换<script type='text/javascript'> </script>代码之间的所有数据:

<!--//<![CDATA[
   var m3_u = (location.protocol=='https:'?'https://d1.openx.org/ajs.php':'http://d1.openx.org/ajs.php');
   var m3_r = Math.floor(Math.random()*99999999999);
   if (!document.MAX_used) document.MAX_used = ',';
   document.write ("<scr"+"ipt type='text/javascript' src='"+m3_u);
   document.write ("?zoneid=946288&amp;source=_self&amp;target=_top&amp;block=1&amp;blockcampaign=1");
   document.write ('&amp;cb=' + m3_r);
   if (document.MAX_used != ',') document.write ("&amp;exclude=" + document.MAX_used);
   document.write (document.charset ? '&amp;charset='+document.charset : (document.characterSet ? '&amp;charset='+document.characterSet : ''));
   document.write ("&amp;loc=" + escape(window.location));
   if (document.referrer) document.write ("&amp;referer=" + escape(document.referrer));
   if (document.context) document.write ("&context=" + escape(document.context));
   if (document.mmm_fo) document.write ("&amp;mmm_fo=1");
   document.write ("'><\/scr"+"ipt>");
//]]>-->

我怎么能这样做呢。请分享解决方案。

更新:这是字符串

<script src="http://d1.openx.org/ajs.php?zoneid=34288&amp;source=_self&amp;target=_top&amp;block=1&amp;blockcampaign=1&amp;cb=98346855009&amp;charset=unicode&amp;loc=http%3A//www.mysite.com/Admin/AddEditArticle.aspx%3FID%3D623" type="text/javascript"></script>

1 个答案:

答案 0 :(得分:2)

您使用的是什么版本的SQL Server?

如果您在2005年或以上,请尝试避免使用NTEXT并使用NVARCHAR(MAX) - NVARCHAR(MAX)支持所有常用的字符串操作,而NTEXT则不支持....

此外,NTEXT / TEXT / IMAGE已弃用,将从未来的SQL Server版本中删除 - 如果可以,请立即升级! : - )

更新:好的,所以你不能改变数据类型。仍然:你在SQL Server的版本是什么? 2000? 2005 ...

2005年及以后,您可能会做类似的事情:

DECLARE @YourOriginalText NVARCHAR(MAX)

SELECT @YourOriginalText = CAST(YourNTextColum AS NVARCHAR(MAX))
FROM dbo.YourTable
WHERE id = .......

// modify the NVARCHAR(MAX) variable
DECLARE @YourModifiedText NVARCHAR(MAX)

SET @YourModifiedText = REPLACE(@YourOriginalText, '....', '......')

// update the table after modification
UPDATE dbo.YourTable
SET ntextColumn = CAST(@YourModifiedText AS NTEXT)
WHERE id = ........

马克