-
将MSSQLSERVER数据库运行在普通用户(独立用户)状态下的设置方法终结篇
看了脚本之家网上的很多文章,整理了如下步骤,基本上可以说是终结解决方法了,这里给详细的整理下了,希望可以帮助更新的朋友,让我们的服务器更加安全。脚本之家奉献...
数据库操作教程 2022-09-23 20:13:07 -
SQLServer分页查询通用存储过程(只做分页查询用)
自开始做项目以来,一直在用。这段存储过程的的原创者(SORRY,忘记名字了),写得这段SQL代码很不错,我在这个基础上,按照我的习惯以及思维方式,调整了代码,只做分页查询用...
数据库操作教程 2022-09-23 17:46:44 -
sqlserver合并DataTable并排除重复数据的通用方法分享
代码如下:复制代码代码如下:///<summary>///将两个列不同的DataTable合并成一个新的DataTable///</summary>///<paramname="dt1">源表</param>///<paramname="dt2">需要合并的表</param>///<paramname="primaryKey">需要排重列表(为空不排重)</param>///<paramname="maxRows">合并后Table的最大行数</param>///<returns>合并后的datatable</returns>publicstaticDataTableMergeDataTable(DataTabledt1,DataTabledt2,stringprimaryKey,intmaxRows){//判断是否需要合并if(dt1==null&&dt2==null){returnnull;}if(dt1==null&...
数据库操作教程 2022-09-23 17:25:18 -
基于SqlServer通用分页存储过程的解决方法
sqlserver2000分页方式很多,效率吗 当到达10万级以上就有些吃力了,这里暂时不例出来了sqlserver2005以上就有了row_number也是一大进步,详情如下参考复制代码代码如下:SqlServer2005通用分页存储过程CREATEPROCEDURE[dbo].[Common_GetPagedList](@TableNamenvarchar(100),--表名@ColumnNamesnvarchar(1000)='*',--字段名集合(全部字段为*,其它逗号分隔)@OrderClausenvarchar(1000),--排序从句(不包含orderby)@WhereClausenvarchar(1000)=N'1=1', --条件从句(不包含where)@PageSizeint=0,--每页记录数(0为所有)@PageIndexint=1, --页索引(从1开始)@TotalRecordintoutput --返回总记录数)ASBEG...
数据库操作教程 2022-09-23 17:16:21 -
将mater库中的系统存储过程批量生成*.sql文件通用且非常实用
大家都知道系统存储过程是无法用工具导出的(大家可以试试>任务>生成SQL脚本)因为系统存储过程一般是不让开发人员修改的。需要知识:1、xp_cmdshell命令的使用2、sp_MS_marksystemobject标记系统存储过程的方法3、dos命令,如type,>>等4、bcp命令的使用复制代码代码如下:usemastergoifOBJECT_ID('pr_procToSql')isnotnulldropprocpr_procToSqlgocreateprocpr_procToSql(@服务器名varchar(100),@用户名varchar(100),@密码varchar(100),@pathvarchar(200),@databasevarchar(200),@sysprocint='0'--是否标记为系统函数1:是,0:否,@proc_namevarchar(100)=''--默认是所有,可以模糊搜索,@savetypevarchar(200)='.sql'--默认保存为sql脚本)as/*版本:v1作者:达摩日期:2012-04-13功能:1将mast...
数据库操作教程 2022-09-23 17:13:58 -
sqlserver通用的删除服务器上的所有相同后缀的临时表
复制代码代码如下:usetempdbifobject_id('tempdb..#table')isnotnulldroptabletempdb..#tableselectnameintotempdb..#tablefrom(select*fromsysobjectswherextype='U')awherea.namelike'%test_select'declare@tablevarchar(100),@countintselect@count=count(name)fromtempdb..#tablewhile(@count>0)beginselecttop1@table=namefromtempdb..#tableexec('ifobject_id('''+@table+''')isnotnulldroptable'+@table+'deletefromtempdb..#tablewherename='''+@table+'''')set@count=@count-1enddroptabletempdb..#table建议:尽量不要大量使用临时表,因为使用tempdb库会使...
数据库操作教程 2022-09-23 17:09:11 -
sqlserver通用分页存储过程
复制代码代码如下:createproccommonPagination@columnsvarchar(500),--要显示的列名,用逗号隔开@tableNamevarchar(100),--要查询的表名@orderColumnNamevarchar(100),--排序的列名@ordervarchar(50),--排序的方式...
数据库操作教程 2022-09-23 16:57:59 -
SQLServer通用的分区增加和删除的算法
首先是将一个数据表加入到分区表的方法:[dbo].[SP_Helper_Partition_Add]@SrcTablenvarchar(256),待加入的表@DestTablenvarchar(256),目标表@idxOnDestnvarchar(1024),目标表上的索引创建语句@Partition_func_namenvarchar(256),分区函数@PartColnvarchar(256),分区的列@SonIsParttinyint=1,待加入的表是否分区算法如下:获取到源表的分区列的值;在源表上加上分区列值的唯一性限制;然后确定是否有一个分区恰好能存放这个表;如果不存在,则返回;在源表上创建和目标表一样的索引;现在源表和目标结构一致,源表的内容能够存在目标分区上,使用altertableswitch完成分区;删除一个分区的算法[dbo]...
数据库操作教程 2022-09-23 16:56:10 -
存储过程实现(可带查询条件/万能分页/通用)
假设数据库中有张表,表名是UserName,字段分别是ID(int),Name(nvarchar),Age(int)。如果不带查询条件存储过程是:复制代码代码如下:CREATEPROCEDURE[dbo].[UserName]@pageIndexint,@pageSizeintASdeclare@minint;declare@maxint;set@min=@pageSize*(@pageIndex-1)+1;set@max=@pageSize*@pageIndex;withmyTableas(selectID,Name,Age,Row_Number()over(orderbyID)asrownumfrom[UserName])selectID,Name,AgefrommyTablewhererownumbetween@minand@maxRETURN这个分页存储过程很不实用,并且表是固定的...
数据库操作教程 2022-09-23 16:47:56 -
sqlserver编写archive通用模板脚本实现自动分批删除数据
博主做过比较多项目的archive脚本编写,对于这种删除数据的脚本开发,肯定是一开始的话用最简单的一个delete语句,然后由于部分表数据量比较大啊,索引比较多啊,会发现删除数据很慢而且影响系统的正常使用。然后就对delete语句进行按均匀数据量分批delete的改写,这样的话,原来的删除一个表用一个语句,就可能变成几十行,如果archive的表有十几个甚至几十个,那我们的脚本篇幅就非常大了,增加了开发和维护的成本,不利于经验比较少的新入职同事去开发archive脚本,也容易把注意力分散到所谓分批逻辑中...
数据库操作教程 2022-09-23 16:43:38 -
sqlserver编写通用脚本实现获取一年前日期的方法
问题: 在数据库编程开发中,有时需要获取一年前的日期,以便以此为时间的分界点,查询其前后对应的数据量。例如:1.想查询截止到一年前当天0点之前的数据量,以及一年前当天0点开始到现在的数据量...
数据库操作教程 2022-09-23 16:42:48 -
sqlserver使用公用表表达式CTE通过递归方式编写通用函数自动生成连续数字和日期
问题:在数据库脚本开发中,有时需要生成一堆连续数字或者日期,例如yearlyreport就需要连续数字做年份,例如dailyreport就需要生成一定时间范围内的每一天日期。而自带的系统表master..spt_values存在一定的局限性,只是从0到2047(验证脚本:select*frommaster..spt_valuesbwhereb.type='P'),也不能直接生成连续日期...
数据库操作教程 2022-09-23 16:42:36