在Sql数据库怎么循环取主键的值(主键是日期格式的流水号)

Zhang_Jia_Hao1 2017-12-15 01:53:42


主键列就是这种格式,在数据库里面怎么循环获取主键列
...全文
223 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
dreamblues 2018-12-20
  • 打赏
  • 举报
回复
其实吧,可以用between ... and ... update 表 set 字段 where 流水号 between 最小值 and 最大值
Zhang_Jia_Hao1 2017-12-15
  • 打赏
  • 举报
回复
已经解决了!!! 各位大佬看看, declare @no varchar(50) //这个是作为获取主键值的变量 declare @i int //这个是作为循环的条件 set @i =0 while @i<(select count(*) from Table)//根据表的总条数判断循环多少次 begin set @no= (select top 1 OrderNo from Table where OrderNo not in (select top (@i) OrderNo from Table)) //给no赋值,每次获取减掉@i条数的主键 end
Zhang_Jia_Hao1 2017-12-15
  • 打赏
  • 举报
回复
引用 7 楼 duanzi_peng 的回复:
[quote=引用 6 楼 hanjun0612 的回复:] [quote=引用 5 楼 An_Net 的回复:] [quote=引用 1 楼 hanjun0612 的回复:] 什么叫循环获取主键列? 游标?或者 row_number+while循环?
我要修改这个表的一个字段(ZT),但是不是都改为一样, 可以说每次修改都只修改一条数据的ZT,这时候我就要获取这张表的 主键作为where 条件去进行 判断[/quote] 那我就不懂了。 不就是 update table set ZT=值 where orderNo='xxxxx' 吗? 你既然要修改,你肯定知道这个号码啊。不然你怎么确定谁应该更新?[/quote] 嗯,没毛病,应该就是这个意思。不过他得意思应该是要同时多条修改。[/quote] 不是,假设我这张表有80条数据,我每次都只修改一条数据的Z
引用 7 楼 duanzi_peng 的回复:
[quote=引用 6 楼 hanjun0612 的回复:] [quote=引用 5 楼 An_Net 的回复:] [quote=引用 1 楼 hanjun0612 的回复:] 什么叫循环获取主键列? 游标?或者 row_number+while循环?
我要修改这个表的一个字段(ZT),但是不是都改为一样, 可以说每次修改都只修改一条数据的ZT,这时候我就要获取这张表的 主键作为where 条件去进行 判断[/quote] 那我就不懂了。 不就是 update table set ZT=值 where orderNo='xxxxx' 吗? 你既然要修改,你肯定知道这个号码啊。不然你怎么确定谁应该更新?[/quote] 嗯,没毛病,应该就是这个意思。不过他得意思应该是要同时多条修改。[/quote] 不是,假设这张表有80 条数据,我每次只修改一条数据的ZT,但是要循环80次,每次获取不同的orderNo作为where条件
Zhang_Jia_Hao1 2017-12-15
  • 打赏
  • 举报
回复
引用 6 楼 hanjun0612 的回复:
[quote=引用 5 楼 An_Net 的回复:] [quote=引用 1 楼 hanjun0612 的回复:] 什么叫循环获取主键列? 游标?或者 row_number+while循环?
我要修改这个表的一个字段(ZT),但是不是都改为一样, 可以说每次修改都只修改一条数据的ZT,这时候我就要获取这张表的 主键作为where 条件去进行 判断[/quote] 那我就不懂了。 不就是 update table set ZT=值 where orderNo='xxxxx' 吗? 你既然要修改,你肯定知道这个号码啊。不然你怎么确定谁应该更新?[/quote] 就是在不确定的情况下,循环获取这张表的orderNo。
exception92 2017-12-15
  • 打赏
  • 举报
回复
引用 6 楼 hanjun0612 的回复:
[quote=引用 5 楼 An_Net 的回复:] [quote=引用 1 楼 hanjun0612 的回复:] 什么叫循环获取主键列? 游标?或者 row_number+while循环?
我要修改这个表的一个字段(ZT),但是不是都改为一样, 可以说每次修改都只修改一条数据的ZT,这时候我就要获取这张表的 主键作为where 条件去进行 判断[/quote] 那我就不懂了。 不就是 update table set ZT=值 where orderNo='xxxxx' 吗? 你既然要修改,你肯定知道这个号码啊。不然你怎么确定谁应该更新?[/quote] 嗯,没毛病,应该就是这个意思。不过他得意思应该是要同时多条修改。
正怒月神 版主 2017-12-15
  • 打赏
  • 举报
回复
引用 5 楼 An_Net 的回复:
[quote=引用 1 楼 hanjun0612 的回复:] 什么叫循环获取主键列? 游标?或者 row_number+while循环?
我要修改这个表的一个字段(ZT),但是不是都改为一样, 可以说每次修改都只修改一条数据的ZT,这时候我就要获取这张表的 主键作为where 条件去进行 判断[/quote] 那我就不懂了。 不就是 update table set ZT=值 where orderNo='xxxxx' 吗? 你既然要修改,你肯定知道这个号码啊。不然你怎么确定谁应该更新?
Zhang_Jia_Hao1 2017-12-15
  • 打赏
  • 举报
回复
引用 1 楼 hanjun0612 的回复:
什么叫循环获取主键列? 游标?或者 row_number+while循环?
我要修改这个表的一个字段(ZT),但是不是都改为一样, 可以说每次修改都只修改一条数据的ZT,这时候我就要获取这张表的 主键作为where 条件去进行 判断
Zhang_Jia_Hao1 2017-12-15
  • 打赏
  • 举报
回复
引用 2 楼 duanzi_peng 的回复:
select 主键列 from 你的table 。 如果不清楚最基本得查询sql语句得话,http://csharp.net-informations.com/
我要修改这个表的一个字段(ZT),但是不是都改为一样, 可以说每次修改都只修改一条数据的ZT,这时候我就要获取这张表的 主键作为where 条件去进行 判断,假设这张表有80条数据, select 主键列 from table 这样能行?
Zhang_Jia_Hao1 2017-12-15
  • 打赏
  • 举报
回复
我要修改这个表的一个字段(ZT),但是不是都改为一样, 可以说每次修改都只修改一条数据的ZT,这时候我就要获取这张表的 主键作为where 条件去进行 判断,假设这张表有80条数据, select 主键列 from table 这样能行?
正怒月神 版主 2017-12-15
  • 打赏
  • 举报
回复
什么叫循环获取主键列? 游标?或者 row_number+while循环?
exception92 2017-12-15
  • 打赏
  • 举报
回复
select 主键列 from 你的table 。 如果不清楚最基本得查询sql语句得话,http://csharp.net-informations.com/
Oracle数据库设计策略及规范 设计策略及规范 1. 目的 定义Oracle数据库设计规范,作为数据库规划、设计、开发以及维护人员的技术参考资料。用以规范和指导相关人员的设计行为。 2. 概述 本文档根据Oracle数据库性能特点,描述对表、视图、存储过程、对象命名等方面的设计规范。 3. 基本策略 3.1 设计策略 分类拆分数据量大的表。 对于经常使用的表(如某些参数表或代码对照表),由于其使用频率很高,要尽量减少表中的记录数量。例如,银行的户主账表原来设计成一张表,虽然可以方便程序的设计与维护,但经过分析发现,由于数据量太大,会影响数据的迅速定位。如果将户主账表分别设计为活期户主账、定期户主账及对公户主账等,则可以大大提高查询效率。 分区策略 在拥有数500行以上的表时,采用分区策略。 索引设计。 对于大的数据库表,合理的索引能够提高整个数据库的操作效率。在索引设计中,索引字段应挑选重复较少的字段;在对建有复合索引的字段进行检索时,应注意按照复合索引字段建立的顺序进行。例如,如果对一个5万多条记录的流水表以日期流水号为序建立复合索引,由于在该表中日期的重复接近整个表的记录数,用流水号进行查询所用的时间接近3秒;而如果以流水号为索引字段建立索引进行相同的查询,所用时间不到1秒。因此在大型数据库设计中,只有进行合理的索引字段选择,才能有效提高整个数据库的操作效率。 有时候为了提高性能。减少表的关联,恰当的数据冗余是允许的。 索引对新增,删除,更新的性能影响比较大,对相关的表的索引使用要权衡 为表和索引建立不同的表空间,禁止在系统表空间中放入非核心oracle系统成分的对象, 确保数据表空间和索引表空间位于不同的磁盘磁盘驱动器上。 对于经常发生同时查询或频繁查询的表,最好把他放到不同的磁盘空间上 4. 逻辑设计规范 4.1 范式 如果没有性能上的原因,应该使用关系数据库理论,达到较高的范式,避免数据冗余。 如果在数据量上与性能上无特别要求,考虑到实现的方便性可以有适当的数据冗余,但基本上要达到3NF。 4.2 表设计 对于数据量比较大的表,根据表数据的属性进行分区,以得到较好的性能。如果表按某些字段进行增长,则采用按字段范围进行范围分区;如果表按某个字段的几个关键进行分布,则采用列表分区;对于静态表,则采用Hash分区或列表分区;在范围分区中,如果数据按某关键字段均衡分布,则采用子分区的复合分区方法。 每个表均创建类型为Sequence的主键字段。 每个表中需含有如下几个基本字段:一个表的SEQ号,4个创建信息字段,5-8个备用字段,一个删除标记字段,最好还有一个行版本字段 字段名 类型 备注 业务SEQ号 整数型 作为表主键 OBLIGATE1 字符型 备用字段 OBLIGATE2 OBLIGATE3 OBLIGATE4 OBLIGATE5 CREATE_USER_ID VARCHAR 创建用户ID CREATE_DATETIME DATE 创建时间 LAST_UPDATE_USER_ID VARCHAR 更新用户ID LAST_UPDATE_DATETIME TIMESTAMP 更新时间 不要用Identify字段作为表的主键与其它表关联。 4.3 索引设计 常规OLTP应用,创建B-TREE索引,不创建位图索引。 不需要为小型数据表(<5000)创建索引。 给单个表创建的索引不超过5个,特别是海量交易类表。 索引条件查询结果记录,不超总记录的20%。 不要给固定选项的字段创建独立索引。 如只有'男,女'的性别字段;'是,否'的状态字段等,不要创建独立索引,位可以建立复合索引。 对于复合索引,索引字段顺序比较关键,把查询频率比较高的字段排在索引组合的最前面。 索引放到独立的表空间,该表空间不需要REDO LOG。 含有外键约束的表的字段,必须有单独索引。如订单明细的表头外键。 5. 对象命名规范 5.1 一般规范 5.1.1 语言 命名使用英文单词,不使用复数。 Oracle数据库设计策略及规范全文共3页,当前为第1页。 英文单词使用同对象本身意义相对或相近的单词。选择最简单或最通用的单词。不能使用毫不相干的单词来命名。 Oracle数据库设计策略及规范全文共3页,当前为第1页。 当一个单词不能表达对象含义时,用词组组合,如果组合太长时,采用简写或缩写,缩写要基本能表达原单词的意义。 当出现对象名重名时,是不同类型对象时,加类型前缀或后缀以示区别。 禁止使用中文或拼音缩写进行命名 5.1.2 大小写 名称一律大写,以方便不同数据库移植,以及避免程序调用问题 5.1.3 单词分隔 命名的各单词之间使用下划线进行分隔。 命名的各单词之间不允许有空格存在 5.1.4 保留字 命名不允许使用SQL保留字。 5.1.5 
`"信息系统数据库技术(一)"课程设计要求 1. 课程设计基本步骤 1.提出问题。首先确定用户对象,描述用户业务现状。 2.数据库设计。设计E_R模型,设计关系数据。 3.系统实现。基于Access或SQL SERVER环境,建立数据库,建立相应的表和视图,建立表间联系,实现各种数据约束。 4.调试运行。输入测试数据,进行调试分析,纠正错误。 2. 课程设计文档要求 根据课程设计基本步骤组织文档。 1. 封面。 2. 系统开发目的。确定系统应用环境,及统开发目的。 3. 系统概述。确定用户对象,描述用户业务现状,确定系统功能。 4. 数据模型设计。由用户业务需求得出数据E_R模型。 5. 数据库设计。由E_R模型转换成数据表,建立表间联系。规范表设计至4NF(如有特殊情 况未达到4NF需说明理由)。 6. 数据库实现。基于Access或SQL SERVER环境,建立数据库,建立数据表,建立表间联系,实现各种数据约束。 7. 调试运行说明。输入测试数据进行调试分析,给出调试运行的有关情况说明。 8. 总结。总结个人在本次课程设计中遇到的问题和心得体会。 9. 成绩评定表。 3. 课程设计具体实施办法 1. 第10周由任课老师给出数据库课程设计题目。 2. 信管0901、0902班至第14周结束,信管1021、1022班至第17周结束,并将所有设计结果 交任课老师。 3. 课程设计提交的具体内容:课程设计文档(每人一份打印稿+电子档,文件命名规则: 学号+姓名,如"080310618唐永.doc")、课程设计数据库文件(文件命名规则:学号+ 姓名)。由课代表将所有打印稿和电子档(每班刻一张光盘,含文档和数据库)收齐 后在规定时间内统一交任课老师。逾期不交者视为弃考,按学校相关规定参加重修或 者重新分配题目参加补考。 4. 期终考核成绩构成:南院总计100分,课程设计占80%,平时成绩占20%。北院总计100 分,课程设计占70%,平时成绩占30%。 社会养老保险数据库设计与实现 1. 系统开发目的 通过理论与实践教学,掌握关系型数据库的基本操作,理解关系型数据库的有关概念 ,具备一定的数据库结构设计的能力,并能综合运用所学知识,进行小型数据库应用系 统的开发工作。本次课程设计是基于ACCESS 2003数据库进行的社会养老保险数据库系统设计与实现。 2. 系统概述 此系统建立了社会养老保险数据库应用系统,适用于农村社会养老保险处理。用户主 要为农村乡镇参保人员。社会养老保险数据库系统的设计与实现主要完成以下几个功能 :实现对参保、缴费、发放、终保、退保、转出、给付开户的数据存储及各种业务状态 的查询。 3. 数据模型设计 1、缴费信息原始单据及E-R模型 图一: 图二: 图三: 2、开户信息原始单据及E-R模型 图四: 3、终保信息原始单据及E-R模型 图五: 4、退保信息原始单据及E-R模型 图六: 5、转出信息原始单据及E-R模型 图七: 6、发放原始单据及E-R模型 图八: 7、人员变更信息及原始单据及E-R模型 图九: 分析说明。。。 2、整体E_R模型 4. 数据库设计。 5. 数据库实现。 1、发放标准信息数据表 "字段名称 "数据类型 "索引 "其他 " "个人编号 "文本(50) "有(无重复) "主键,NOT NULL " "起始时间 "日期/时间 "有(有重复) "主键 " "截止时间 "日期/时间 "有(有重复) " " "发放金额 "货币 "有(有重复) "默认:0 " 2、发放信息数据表 "字段名称 "数据类型 "索引 "其他 " "个人编号 "文本(50) " "主键, NOT NULL " "发放年月 "日期/时间 "有(有重复) "主键,NOT NULL " "发放金额 "货币 "有(有重复) "默认:0 " 3、给付开户信息数据表 "字段名称 "数据类型 "索引 "其他 " "单据流水号 "文本(50) "有(无重复) "主键,NOT NULL " "补贴额 "货币 "有(有重复) "默认:0 " "开户日期 "日期/时间 "有(有重复) " " "个人编号 "文本(50) "有(无重复) "外键,NOT NULL " 4、机构信息数据表 "字段名称 "数据类型 "索引 "其他 " "机构编号 "文本(50) "有(无重复) "主键,NOT NULL " "机构名称 "文本(50) " "NULL " 5、集体信息数据表 "字段名称 "数据类型 "索引 "其他 " "集体编号 "文本(50) "有(无重复) "主键,NOT NULL " "集体名称 "文本(50) "有(有重复) "NULL " 6、乡镇信息数据表 "字段名称 "数据类型 "索引 "其他 " "乡镇编号 "文本(50) "有
服装销售系统数据库设计 一:需求描述 某服装连锁店要开发一套服装销售管理软件,对日常的服装销售进行信息化管理,要 求该软件实现服装销售行业的采购订货、退货、前台零售、批发业务、促销管理、会 员管理、库存管理、库存盘点等各个业务流程,把服装销售行业的进货、退货、销售 、库存、财务等业务实现一体化管理。 开发该软件有两大部分工作要做:第一后台数据库的设计;第二前端界面功能开发。 现阶段我们要完成后台数据库的设计。为了方便起见,我们实现对服装销售核心业务 "销售管理"子模块的设计。该模块实现"服装的基础信息维护、服装销售、常见查询、 利润统计、销售冠军排名"等功能。 二:开发环境 开发工具:SQL Server2005 企业版。 三:技能点 (1)、在SQL Server中创建库、建表、建约束。 (2)、INSERT、UPDATE、DELETE、SELECT语句。 (3)、统计函数:如SUM、COUNT、AVG等。 (4)、多表关联查询。 (5)、GROUP By分组统计。 四:问题分析 为了实现服装销售管理,需要建立数据库及数据表对数据进行有效存储。经过分析, 涉及到的数据表至少有服装基础表和服装销售表。以下为服装基础表和服装销售表。 1. 服装基础表(clBaseInfo) "字段名称 "数据类型 "描述 " "SectionCode "varchar(5) "款号,服装款型编号,必填项。" " " "只能是5位字符,并且前两为是"" " " "MC"。如"MC201"。 " "BarCode "char(8) "服装条形码,服装的唯一标识," " " "主键。规则"款号+3位流水号"," " " "一款服装可能会有不同颜色或尺" " " "码。 " "clName "varchar(100"服装名称,必添项。 " " ") " " "Type "varchar(20)"服装类别。如男鞋、女鞋、上衣" " " "、裤子。 " "Brand "varchar(100"品牌,服装的品牌信息。 " " ") " " "Fabric "varchar(20)"面料。如"纯棉、皮、革、"默认" " " ""纯棉" " "clSize "varchar(20)"尺码。只能是"L、S、M、XL"中 " " " "的一种,因为L号较为常见,默 " " " "认为"L"。 " "Color "varchar(50)"颜色 " "SalesPrice "float "销售单价 " "InPrice "float "进货价格 " 表3.1 服装表(clBaseInfo) 2. 服装销售表(clSales) "字段名称 "数据类型 "描述 " "ID "int "标识列,主键。 " "ShopName "varchar(100"连锁店名,必填项。默认"人百" " ") "店" " "SalesMan "varchar(30)"销售员姓名 " "SalesDate "datetime "销售日期。默认为系统当天。 " "SalesCode "varchar(10)"销售单号,必填项。长度是10 " " " "位字符串。且前4位为"2010"," " " "中间2位为分店简码,后4位为 " " " "数字型流水号。 " "BarCode "char(8) "服装条形码。外键。 " "SalesCount "int "销售数量,必填项。数范围 " " " "大于0. " "Rebeat "float "折扣,默认为1,代表不打折。" "payType "varchar(20)"付款方式:可以是"现金、银行" " " "卡、信誉卡、代金券",默认" " " " "现金" " "Total "money "实收金额 " 表3.2 服装销售表(clSales) 五:任务实现 1. 创建数据库 在本机D盘新建文件夹SalesProject,在SQL Server Managerment Studio中按要求创建数据库SalesDB,保存在SalesProject文件夹下。主数据库文件增 长率为12%,日志文件增长率为5%,并且日志文件最大为50M。 2. 创建数据表 (1)、在数据库中创建服装基础表clBaseInfo,逐一设置字段名、字段长度、数据 类型 等。 (2)、在数据库中创建服装销售表clSales。 3. 增加约束 根据表3.1说明部分要求,设置各列约束: (1)、必填项,表明该字段应添加非空约束。 (2)、服装条形码,为主键列,应增加主键约束。 (3)、有默认的应增加默认约束。 (4)、款号列应配合LIKE关键字增加检查约束。 根据表3.2说明部分要求,设置各列约束: (1)、ID增加标识列约束,标识种子为1,标识增量为1;并设置主键约束。 (2)

62,025

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧