黄色网页视频 I 影音先锋日日狠狠久久 I 秋霞午夜毛片 I 秋霞一二三区 I 国产成人片无码视频 I 国产 精品 自在自线 I av免费观看网站 I 日本精品久久久久中文字幕5 I 91看视频 I 看全色黄大色黄女片18 I 精品不卡一区 I 亚洲最新精品 I 欧美 激情 在线 I 人妻少妇精品久久 I 国产99视频精品免费专区 I 欧美影院 I 欧美精品在欧美一区二区少妇 I av大片网站 I 国产精品黄色片 I 888久久 I 狠狠干最新 I 看看黄色一级片 I 黄色精品久久 I 三级av在线 I 69色综合 I 国产日韩欧美91 I 亚洲精品偷拍 I 激情小说亚洲图片 I 久久国产视频精品 I 国产综合精品一区二区三区 I 色婷婷国产 I 最新成人av在线 I 国产私拍精品 I 日韩成人影音 I 日日夜夜天天综合

替換text字段的儲(chǔ)存過程

系統(tǒng) 1917 0

ntext, text, and image data types will be removed in a future version of MicrosoftSQL Server. Avoid using these data types in new development work, and plan to modify applications that currently use them. Use nvarchar(max), varchar(max), and varbinary(max) instead
  從上文可以看到text,ntext等類型將會(huì)被ms sqlserver拋棄,取而代之的是varchar(max)等.
  預(yù)計(jì)也將會(huì)取消專門針對(duì)text等類型的操作函數(shù),例如textptr,updatetext等。
  但是目前有許多現(xiàn)存系統(tǒng)仍然存在text類型的字段,因?yàn)榉N種原因已經(jīng)不能修改數(shù)據(jù)庫結(jié)構(gòu)。
  但是我們可以在新寫的sql語句及存儲(chǔ)過程中采用新的方法,以備將來mssql server拋棄專門針對(duì)text等類型的操作函數(shù)后修改程序的麻煩。
  下面是一個(gè)簡(jiǎn)單的替換例子,
  針對(duì)text類型的字符串替換:
  設(shè)有表 T(id int not null,info text)
  要求替換info中的'abc'為'123'
  一般的存儲(chǔ)過程會(huì)寫成:
  drop procedure dbo.procedure_1
  go
  set ANSI_NULLS ON
  set QUOTED_IDENTIFIER ON
  go
  create procedure dbo.procedure_1
  as
  declare @ptr varbinary(16)
  declare @ID int
  declare @Position int,@len int
  declare @strsrc char(3)
  declare @strdsc char(3)
  set @strtmp='abc'
  set @strdsc='123'
  set @len=3
  declare replace_Cursor scroll Cursor
  for
  select textptr([info]),id from T
  for read only
  open replace_Cursor
  fetch next from replace_Cursor into @ptr,@ID
  while @@fetch_status=0
  begin
   select @Position=patindex(
'%'+@strsrc+'%',
   while @Position>0
   begin
   set @Position=@Position-1
   updatetext T.[info] @ptr @Position @len @strdsc
   select @Position=patindex(
'%'+@strsrc+'%',
   end
   fetch next from replace_Cursor into @ptr,@ID
  end
  close replace_Cursor
  deallocate replace_Cursor
  go
  其中用到了text專用的函數(shù) updatetext
  現(xiàn)在我們改寫成
  drop procedure dbo.procedure_1
  go
  set ANSI_NULLS ON
  set QUOTED_IDENTIFIER ON
  go
  create procedure dbo.procedure_1
  as
  declare @ID int
  declare @strtmp varchar(max)
  declare @strsrc char(3),@strdsc char(3)
  set @strsrc = 'abc'
  set @strdsc = '123'
  declare replace_Cursor scroll Cursor
  for
  select id from testtable
  --for read only
  open replace_Cursor
  fetch next from replace_Cursor into @ID
  while @@fetch_status=0
  begin
   select @strtmp = [info] from testtable where
id=@ID
   select @strtmp = Replace(@strtmp,@strsrc,@strdsc)
   update T set [info] = @strtmp where
id=@ID
   fetch next from replace_Cursor into @ID
  end
  close replace_Cursor
  deallocate replace_Cursor
  go
  這樣,無論info字段改成char,nchar,text都好,一樣均可通用

替換text字段的儲(chǔ)存過程


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論