设为首页收藏本站

Scripts 学盟

 找回密码
 加入学盟

QQ登录

只需一步,快速开始

查看: 1392|回复: 1
打印 上一主题 下一主题

Sqlserver split 功能 [复制链接]

Rank: 8Rank: 8

跳转到指定楼层
1#
那个谁 发表于 2011-5-26 16:56:54 |显示全部楼层 |倒序浏览
本帖最后由 那个谁 于 2011-5-26 17:00 编辑

今天一个客户有个需求说要在很多频道建附带发布。。当时软件规划没这个功能。一看几十个栏目,把我吓的。赶紧写个sql批量解决了。回头跟客户说这需要一周工作量。。O(∩_∩)O哈哈~
如果你有更好的方法请回帖。
不懂 就回帖问哦。。不解释了。
  1. declare @SplitString varchar(8000),@Separator varchar(10)
  2. declare @channelid varchar(1000),@chanelName varchar(100),@atempId varchar(100),@path varchar(1000)

  3. set @SplitString='13621,13511,13625,13512,13617,13513,13618,13619,13623,13624,13616,13522,13523,13524,13525,13527,13528,13529,13530,13531,13533,13534,13535,13536,13630,13553,13551,13599,13600,13601,13602,13603,13605,13607,13608,13609,13610,13611,13612,13613,13614'
  4. set @Separator=','
  5. DECLARE @CurrentIndex int;
  6. DECLARE @NextIndex int;
  7. DECLARE @ReturnText nvarchar(max);
  8. SELECT @CurrentIndex=1;
  9.         WHILE(@CurrentIndex<=len(@SplitString))
  10. BEGIN
  11.         SELECT @NextIndex=charindex(@Separator,@SplitString,@CurrentIndex);
  12.         IF(@NextIndex=0 OR @NextIndex IS NULL)
  13.         SELECT @NextIndex=len(@SplitString)+1;
  14.         SELECT @ReturnText=substring(@SplitString,@CurrentIndex,@NextIndex-@CurrentIndex);
  15.          /*插入数据*/
  16.          select @channelid=Channelid,@chanelName=ChannelName   from channels where channelcode=@ReturnText
  17. print  @channelid+' Name: '+@chanelName+' channelCode='+@ReturnText

  18. /*更新导读附带发布*/

  19. set @atempId='2063b3c7-a04d-48a5-80ce-3c1ec837adda'
  20. set @path='/web101/include/news_gxdd.html'

  21. INSERT INTO [IntertidCMS].[dbo].[ChannelAttachTemplate]
  22.            ([ChannelAttID]
  23.            ,[ChannelID]
  24.            ,[TempID]
  25.            ,[BuildFilePath]
  26.            ,[Description]
  27.            ,[CreateTime]
  28.            ,[CreateUserID]
  29.            ,[ModifyTime]
  30.            ,[ModifyUserID])
  31.      VALUES
  32.            (newid(),
  33.             @channelid,
  34.             @atempId,
  35.                         @path,
  36.             '',
  37.             getDate(),
  38.             'b3ae3a2e-8023-485d-9d28-3066e0b72ae3',
  39.             getDate(),
  40.             'b3ae3a2e-8023-485d-9d28-3066e0b72ae3')


  41. /*更新导读列表*/
  42. set @atempId='059bbc0e-2cff-4788-b866-aa63102e9e72'
  43. set @path='/web101/include/gxdd_index.html'

  44. INSERT INTO [IntertidCMS].[dbo].[ChannelAttachTemplate]
  45.            ([ChannelAttID]
  46.            ,[ChannelID]
  47.            ,[TempID]
  48.            ,[BuildFilePath]
  49.            ,[Description]
  50.            ,[CreateTime]
  51.            ,[CreateUserID]
  52.            ,[ModifyTime]
  53.            ,[ModifyUserID])
  54.      VALUES
  55.            (newid(),
  56.             @channelid,
  57.             @atempId,
  58.                         @path,
  59.             '',
  60.             getDate(),
  61.             'b3ae3a2e-8023-485d-9d28-3066e0b72ae3',
  62.             getDate(),
  63.             'b3ae3a2e-8023-485d-9d28-3066e0b72ae3')



  64.         SELECT @CurrentIndex=@NextIndex+1; /*改变下标*/
  65. END
复制代码
1

查看全部评分

分享到: QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
分享分享0 收藏收藏0

Rank: 8Rank: 8

2#
那个谁 发表于 2011-5-27 08:31:22 |显示全部楼层
混混@普宁.中国 发表于 2011-5-27 00:05
欺诈客户

这不就欺诈。。。工期必须是问题复杂化、解决问题必须是简单化。

使用道具 举报

您需要登录后才可以回帖 登录 | 加入学盟

手机版|Scripts 学盟   |

GMT+8, 2024-5-17 07:33 , Processed in 1.071214 second(s), 13 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部