MS-SQL循环、随机数

---创建视图
create view myview as select re=rand() 

--自定义函数:取得指定范围的随机数
create function mydata(
@a int,
@b int)
returns decimal(38,0)
as
begin
declare @r decimal(38,0)
select @r=cast(re*(@b-@a)+@a as decimal(38,0)) from myview
return(@r)
end
go 

---循环数据
DECLARE @Id varchar(50)
DECLARE My_Cursor CURSOR --定义游标
FOR (SELECT APP_Id FROM dbo.tbl_APP) --查出需要的集合放到游标中
OPEN My_Cursor; --打开游标
FETCH NEXT FROM My_Cursor INTO @Id; --读取第一行数据(将MemberAccount表中的UserId放到@UserId变量中)
WHILE @@FETCH_STATUS = 0
    BEGIN
        PRINT @UserId; --打印数据(打印MemberAccount表中的UserId)
        UPDATE dbo.tbl_APP SET APP_Download = dbo.mydata(1000,99999) WHERE APP_Id = @Id; --更新数据
        FETCH NEXT FROM My_Cursor INTO @UserId; --读取下一行数据(将MemberAccount表中的UserId放到@UserId变量中)
    END
CLOSE My_Cursor; --关闭游标
DEALLOCATE My_Cursor; --释放游标
GO
时间: 2024-10-14 09:14:22

MS-SQL循环、随机数的相关文章

sql 循环 ,随机数,循环插入一年数据

--循环插入一年的时间 DROP TABLE #temp CREATE TABLE #temp (date DATETIME); DECLARE @year INT SET @year=2019; WITH a1 AS ( SELECT CAST(RTRIM(@year)+'-01-01' AS DATETIME) date UNION ALL SELECT DATEADD(dd,1,date) FROM a1 WHERE DATEPART(yy,DATEADD(dd,1,date))=@yea

MS SQL 日志记录管理

MS SQL的日志信息/日志记录,可能对你来说,既熟悉又陌生,熟悉是因为你可能一直都在使用,查看.关注一些日志信息/记录,例如,作业历史记录:陌生是因为你可能从不关注日志信息/记录的管理,这里我一直用日志信息/记录这个词,而没有用日志文件这个词来阐述,是想让大家把它和事务日志文件(ldf)区分开来,网上你用日志文件做搜索关键词,可能搜出来的都是事务日志相关的信息.其实它真的也叫日志文件,这篇文章我大概从日志记录分类.如何查看日志记录.日志记录的位置.日志记录的设置.为什么错误日志会暴增.如何清除

MS SQL语句优化

MS SQL Server查询优化方法查询速度慢的原因很多,常见如下几种 1.没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) 2.I/O吞吐量小,形成了瓶颈效应. 3.没有创建计算列导致查询不优化. 4.内存不足 5.网络速度慢 6.查询出的数据量过大(可以采用多次查询,其他的方法降低数据量) 7.锁或者死锁(这也是查询慢最常见的问题,是程序设计的缺陷) 8.sp_lock,sp_who,活动的用户查看,原因是读写竞争资源. 9.返回了不必要的行和列 10.查询语句不好,没

MS Sql优化(转自网络)

MS SQL Server查询优化方法查询速度慢的原因很多,常见如下几种 1.没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) 2.I/O吞吐量小,形成了瓶颈效应. 3.没有创建计算列导致查询不优化. 4.内存不足 5.网络速度慢 6.查询出的数据量过大(可以采用多次查询,其他的方法降低数据量) 7.锁或者死锁(这也是查询慢最常见的问题,是程序设计的缺陷) 8.sp_lock,sp_who,活动的用户查看,原因是读写竞争资源. 9.返回了不必要的行和列 10.查询语句不好,没

学习使用MS SQL Server游标(CURSOR)

说实的,使用MS SQL Server这样久,游标一直没有使用过.以前实现相似的功能,都是使用WHILE循环加临时表来实现.刚才有参考网上示例练习写了一下.了解到游标概念与语法.下面代码示例中,先是宣告你在游标中需使用变量,也就是临时存储处理字段的数据.2. 宣告一个游标,并SELECT需要处理的数据集.3. 打开游标(#8行代码).4. 从游标中拿来FETCH NEXT 数据给变量赋值.5. 循环@@FETCH_STATUS = 0条件.6. 在循环块,可以处理第一笔的记录逻辑了.本示例中是P

数据库基础知识总结(MS sql)

基本概念 数据:描述事物的符号称为数据,是存储在数据库中的基本对象. 数据库:数据库是长期存储在计算机上内的有组织.可共享的数据集合. 数据库管理系统:用户和操作系统之间的一层数据管理软件.主要功能包括如下几个方面: >1 数据定义功能:通过数据定义语言DDL(Data Definition Language)实现数据对象的定义 >2 数据组织.存储和管理 >3 数据操纵:通过数据操纵语言DML(Data Manipulation Language),用户可以使用DML操纵数据,实现对数

使用SqlBulkCopy导入数据至MS SQL Server

原文:使用SqlBulkCopy导入数据至MS SQL Server Insus.NET一直使用表类型来数据入MS SQL Server.参考<存储过程参数为DataTable>http://www.cnblogs.com/insus/archive/2012/09/22/2698515.html .今天学习一个SqlBulkCopy来把数据导入MS SQL Server中去.就是这个<读取XML某一节点>http://www.cnblogs.com/insus/p/3778256

SQL优化相关(MS SQL)

1.With T AS () 中语句会单独生成执行计划 2.MS SQL数据库中已"页"的方式按顺序存储数据,如插入数据,会增加新的页,并将两页中数据平均分配,每一张未填满数据的页称为数据库碎片. 3.避免使用GUID等无序列作为索引 4.页压缩 5.表分区,利用CPU多核特性并行操作数据库 6.数据表数据量较大或join次数较多时时,join方式的自动选择会出现问题,需要在sql中手动设定hash join.merge join或loop join 下面我们通过一个表格简单总结这几种

MS SQL SERVER: msdb.dbo.MSdatatype_mappings &amp; msdb.dbo.sysdatatypemappings

--SQL转Oracle/DB2的类型对应关系SELECT *FROM msdb.dbo.MSdatatype_mappings; --MS SQL SERVER更详细得显示了ORACLE/DB2各个数据库系统的类型对应SELECT *FROM msdb.dbo.sysdatatypemappings; dbms_name sql_type dest_type dest_prec dest_create_params dest_nullable DB2 bigint DECIMAL 19 3 t

使用 PHP 框架 Yii 访问 MS SQL 的尝试

今天尝试在 Wamp 环境下访问 MS SQL 数据库,有以下心得.使用 PHP 5.3 + pdo_odbc + Yii 1.1 框架,以下两个代码段可以成功. 1.直接使用 PDO 方式,可以获取数据. 1 $sql = "SELECT TOP 10 [NAME],[STCD],[TM],[PA] FROM AT_PA"; 2 $cnx = new PDO("odbc:Driver={SQL Server};Server=10.5.1.47;Database=mydb;&