| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 808 人关注过本帖
标题:请教,这种属性值如何生成?
只看楼主 加入收藏
浮云猪
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2008-5-5
收藏
 问题点数:0 回复次数:1 
请教,这种属性值如何生成?
A表中有一个ID字段并且为主键,值为ziy00000001,ziy00000002,ziy00000003.......,再加上其它字段等等,现在有一个需求,需要把另外一个数据库中的某个表的数据插入到A表中,当然这两个表不太一样,但是其中大部分的字段可以插入的,但是A表中的这个ID字段,我不知道该怎么写SQL语句让他生成 ziy开头的这个格式的字符串,又不能不生成,苦恼中
搜索更多相关主题的帖子: SQL 数据库 属性 字段 
2008-05-05 19:13
happynight
Rank: 8Rank: 8
等 级:贵宾
威 望:15
帖 子:807
专家分:760
注 册:2008-4-26
收藏
得分:0 
可以考虑使用临时表来处理
假设数据来源表为B
1.先利用IDENTITY函数将B表的数据导入到一临时表
  SELECT IDENTITY(int, 1,1) AS N_ID,* INTO #TmpData FROM B
2.读取A表中原流水号的最大值
  DECLARE @MaxID AS INT
  SELECT @MaxID =MAX(CAST(RIGHT([ID],8) As INT)) FROM A
3.将数据导入到目的表
  --只演示序列号生成的方法
  SELECT 'ziy' + CASE LEN(N_ID + @MaxID) WHEN 1 THEN '0000000' + CAST(@MaxID + N_ID AS VARCHAR(10))
                                     WHEN 2 THEN '000000' + CAST(@MaxID + N_ID AS VARCHAR(10))
                                     WHEN 3 THEN '00000' + CAST(@MaxID + N_ID AS VARCHAR(10))
                                     WHEN 4 THEN '0000' + CAST(@MaxID + N_ID AS VARCHAR(10))
                                     WHEN 5 THEN '000' + CAST(@MaxID + N_ID AS VARCHAR(10))
                                     WHEN 6 THEN '00' + CAST(@MaxID + N_ID AS VARCHAR(10))
                                     WHEN 7 THEN '0' + CAST(@MaxID + N_ID AS VARCHAR(10))
                                     WHEN 8 THEN   CAST(@MaxID + N_ID AS VARCHAR(10))
END AS N_ID
FROM #TmpData
----------------------------------------
这只是就2000版本必须使用临时表和IDENTITY函数,好象更高的版本就不必要这么麻烦

[[it] 本帖最后由 happynight 于 2008-5-6 08:41 编辑 [/it]]
2008-05-06 08:38
快速回复:请教,这种属性值如何生成?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.033545 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved