如何从mssql随机取出一条记录,看似很简单的问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何从mssql随机取出一条记录,看似很简单的问题相关的知识,希望对你有一定的参考价值。
参考技术A 项目中客户要求随机取一个电话号码用来外呼,就试出这么个方法:select top 1 * from 表名 order by newid()
重点在于newid()生产随机值,取多条则改成具体数量即可。
呵呵,原因是NEWID()为表是的每一行数据在内存里生成一个GUID。而因为GUID的值唯一而很随机,这样的话按GUID排序取出来的数据相对的也很随机。
除了能随机的取出一条数据,你还可以:
-- 随机取出表上的任意条数据,例如100
SELECT TOP 100 *
FROM Table1
ORDER BY NEWID()
-- 随机取出表上的10%的数据
SELECT TOP 10 PERCENT *
FROM Table1
ORDER BY NEWID() 参考技术B SELECT TOP(1) * FROM [表名] ORDER BY newid() 参考技术C select top 1 * from 表名 order by newid()
主表插入一条记录,取出主表的记录主键,赋值给予从表多条记录使用
主表插入一条记录,取出主表的记录主键,赋值给予从表多条记录使用
public void CreateWorkOrdGrid(Pp_WorkOrd_Hd headObject, List<Pp_WorkOrd_Dt> bodyObject) { //方式一 using (var transction = project.Database.BeginTransaction()) { project.Pp_WorkOrd_Hd.Add(headObject); foreach (Pp_WorkOrd_Dt a in bodyObject) { a.Pp_WorkOrd_Hd = headObject; project.Pp_WorkOrd_Dt.Add(a); } project.SaveChanges(); transction.Commit(); } //方式二 using (var scope = new TransactionScope()) { project.Pp_WorkOrd_Hd.Add(headObject); project.SaveChanges(); foreach (Pp_WorkOrd_Dt a in bodyObject) { a.Pp_WorkOrd_Hd = headObject; project.Pp_WorkOrd_Dt.Add(a); } project.SaveChanges(); scope.Complete(); } }
以上是关于如何从mssql随机取出一条记录,看似很简单的问题的主要内容,如果未能解决你的问题,请参考以下文章