MSSQL之系統函數NEWID()我之理解與學習

大家也許對MS SQL的隨機函數NEWID應該不會陌生吧,昨天同事問我在LINQ中怎么實現隨機數查詢,我不加思索的回答,那你是不是要用.NET的RANDOM()函數生成對應的選擇條件,然后進行查詢,后來她告訴我,她有在網絡上SEARCH,只是自己不知道怎么用,后來我看看,網絡上那個代碼,那個注釋,勉強還算是懂了吧,不過自己把自己的心得和體會寫出來,各位俠客、高手、忍者,千萬別拋磚頭砸我,小弟我是自學,HEHE,不過我也希望各位在這里指出我的不足,至少討論中可以學到很多東西,新的技術和想法也是在彼此的討論中得到提升了,歡飲各位討論,留言,發表評論。

--題外話:总觉得繁体字博大精深,不过为了自己和他人看起来比较舒服,我还是使用简体吧。

2009121810313629.jpg

上图是基于在SQL Server 2005 而生成的

1.先聊聊NEWID():

  newid()是MS SQL SERVER产品自己增加的一个功能函数,目的是用于返回随机生成的uniqueidentity值,见图中的1位置,就知道有一个返回参数。看见上图,各位朋友请你千万注意,别以为@NONE是一个输入参数,其实在这里就相当于一个占位符吧,不起作用,只是表示NEWID()没用传入参数,NONE英文大家都知道就是无,没有的意思。

不信可以进行验证:

code sample:

select  top 2*from Customers order  by newid(4)

红色部分:带了一个参数

此时MSSQL会提示错误:

信息:The newid function requires 0 argument(s).

中文意思:newid函数需要0个参数,言外之意就是没参数。

2.再聊聊怎么使用NEWID()函数

在MSSQL 的查询分析器,或者SQL脚本编辑区,输入以下SQL语句

其实在1中就已经隐约的看出来怎么使用newid function,

代码还是COPY一次吧:

select  top 2*from Customers order  by newid()--可以见图中2的栏位

3. 进行多次EXCUTE SQL命令,

你会发现每次执行后的2条数据都是随机的,基本上都是不一样的结果。

关于在MS SQL中怎么使用NEWID()先说到这里。

下一篇随笔我会讨论一下在LINQ中怎么使用NEWID()

 

转载于:https://www.cnblogs.com/wanzegui325/archive/2009/12/18/1626958.html

参考资源链接:[达梦数据库迁移:MYSQL程序信创环境下的适配实战](https://wenku.youkuaiyun.com/doc/4a7jcgz2sd?utm_source=wenku_answer2doc_content) 在将MySQL数据库迁移到达梦数据库(DM)的过程中,处理MySQL不兼容的SQL语法和函数是关键步骤之一。推荐参考《达梦数据库迁移:MYSQL程序信创环境下的适配实战》文档,以便获得详细解析和具体操作指导。 首先,应对分页SQL进行调整,以确保其兼容达梦数据库。由于达梦不支持`from dual`语法,对于空表查询,可以省略此部分。在处理`group by`时,应遵循标准SQL语法,避免不规范写法,以减少潜在问题。 对于UUID函数的使用,由于达梦数据库没有直接的等价物,可以通过自定义函数或使用`guid`和`newid`来替代。在存储过程的迁移过程中,需要注意声明部分的重构,以及替换不支持的事务处理和SQL语句。 在处理`text`类型字段时,应根据实际情况对数据类型进行调整,确保数据的正确迁移和存储。另外,对于`format()`函数的使用,由于达梦不支持该函数,建议使用`round()`进行替代。 通过上述步骤的调整,可以确保在迁移到达梦数据库时,应用程序能够保持正常运行,同时保证数据的完整性和准确性。如果需要更深入地了解迁移过程中的各种细节和解决方案,请参阅《达梦数据库迁移:MYSQL程序信创环境下的适配实战》,该文档不仅提供了迁移过程中的具体操作,还针对特定功能处理提供了详尽的案例分析,为迁移工作提供了全面的支持。 参考资源链接:[达梦数据库迁移:MYSQL程序信创环境下的适配实战](https://wenku.youkuaiyun.com/doc/4a7jcgz2sd?utm_source=wenku_answer2doc_content)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值