-
.net+mssql制作抽奖程序思路及源码
抽奖程序:思路整理,无非就是点一个按钮,然后一个图片旋转一会就出来个结果就行了,可这个程序的要求不是这样的,是需要从数据库中随机抽取用户,根据数据库中指定的等级和人数,一键全部抽出来结果就行了。同时需要存储到数据库...
数据库操作教程 2022-09-23 17:58:28 -
SQLServer中参数化SQL写法遇到parametersniff,导致不合理执行计划重用的快速解决方法
parametersniff问题是重用其他参数生成的执行计划,导致当前参数采用该执行计划非最优化的现象。想必熟悉数据的同学都应该知道,产生parametersniff最典型的问题就是使用了参数化的SQL(或者存储过程中使用了参数化)写法,如果存在数据分布不均匀的情况下,正常情况下生成的执行计划,在传入在分布数据较多的参数的情况下,重用了正常参数生成的执行计划,而这种缓存的执行计划并非适合当前参数的一种情况...
数据库操作教程 2022-09-23 17:57:30 -
MSSQL附加数据库拒绝访问提示5120错误的处理方法
MSSQL附加数据库时提示以下错误:无法打开物理文件“***.mdf”。操作系统错误5:“5(拒绝访问...
数据库操作教程 2022-09-23 17:57:22 -
MSSQLServer游标(CURSOR)的学习使用
说实的,使用MSSQLServer这样久,游标一直没有使用过。以前实现相似的功能,都是使用WHILE循环加临时表来实现...
数据库操作教程 2022-09-23 17:56:55 -
SQL中DATEADD和DATEDIFF的用法示例介绍
通常,你需要获得当前日期和计算一些其他的日期,例如,你的程序可能需要判断一个月的第一天或者最后一天。你们大部分人大概都知道怎样把日期进行分割(年、月、日等),然后仅仅用分割出来的年、月、日等放在几个函数中计算出自己所需要的日期!在这篇文章里,我将告诉你如何使用DATEADD和DATEDIFF函数来计算出在你的程序中可能你要用到的一些不同日期...
数据库操作教程 2022-09-23 17:56:50 -
SQLServer出现System.OutOfMemoryException异常的解决方法
今天在用SQLServer2008执行一个SQL脚本文件时,老是出现引发类型为“System.OutOfMemoryException”的异常错误,脚本明明是从SQLServer2008导出的,应该不会出错,研究了好久问题才得以解决。出现这个错误的主要原因是由于SQL脚本文件太大,估计超过了100M了,解决方法就是把脚本文件分成几个脚本文件,分别去执行即可...
数据库操作教程 2022-09-23 17:56:39 -
SQLServer数据复制到的Access两步走
我们今天主要向大家讲述的是把SQLServer数据复制到的Access数据库中的实际操作步骤,把SQLServer数据库中的某些数据复制到的Access数据库中,其表的主要结构是相同的,不要提用openrowset,因为Access文件和SQLServer不在一台机器上。初步的想法是用两个recordset,一个从SQL取数据,一个往Access里面插入数据因为表的字段比较多,所以只好用一个循环while(!m_pRecordset_sql->adoEOF){m_pRecordset_access->AddNew();for(inti=0;i<m_pRecordset_sql->Fields->Count;i++){vValue=m_pRecordset_sql->GetCollect(_variant_t((long)i));m_pRecordset_access->PutCollect(_variant_t((long)i),vValue);}m_pRecordset_access->Update();m_pRecordset_sql...
数据库操作教程 2022-09-23 17:56:24 -
mssqlserver中实现的unix时间戳函数(含生成和格式化,可以和mysql兼容)
直接上代码:CREATEFUNCTIONUNIX_TIMESTAMP(@ctimestampdatetime)RETURNSintegerASBEGIN/*Functionbody*/declare@returnintegerSELECT@return=DATEDIFF(SECOND,{d'1970-01-01'},@ctimestamp)return@returnENDCREATEFUNCTIONfrom_unixtime(@tsinteger)RETURNSdatetimeASBEGIN/*Functionbody*/declare@returndatetimeselect@return=DATEADD(second,@ts,{d'1970-01-01'})return@returnEND用法跟MySQL下的一样类似:selectdbo.UNIX_TIMESTAMP('2013-1-1')selectdbo...
数据库操作教程 2022-09-23 17:47:59 -
MSSQL中进行SQL除法运算结果为小数却显示0的解决方法
今天在用MSSQL进行SQL除法运算时,发现运算结果有小数,而整数部分为0时,结果直接显示为0,经过一翻测试发现了解决方法,拿来分享。假设有如下的一段SQL除法运算:selectfield1/field2fromtable假设其运算结果应该为0.123,但实际在MSSQL查询编辑器中运算直接就显示为0了,那么要想显示其真实结果,有什么办法呢?方法就是将分子field1的数据类型强制转换为float型,方法如下:selectcast(field1asfloat)/field2fromtable...
数据库操作教程 2022-09-23 17:47:22 -
SqlServer中REPLACE函数的使用
REPLACE用第三个表达式替换第一个字符串表达式中出现的所有第二个给定字符串表达式。语法REPLACE(''string_replace1'',''string_replace2'',''string_replace3'')参数''string_replace1''待搜索的字符串表达式...
数据库操作教程 2022-09-23 17:43:50 -
MSSQL事务的存储过程
在酒店管理系统开发中,我们会创建房间表和房间类型表(房型表)这两个表,如下图所示:房型表:RoomType 房间表:Room 首先这两个表的关系:Room是从表,RoomType是主表,两表有主外键关系,RoomType.rTypeId=Room.rTypeId分析这两个表,我们会发现这样一个问题:在房间表和房型表管理中,当我们修改或者删除一个RoomType表,对应的Room表我们也要做修改和删除,那么我们怎么解决这个问题呢?首先可以在数据库中设置级联删除,或者利用触发器也可以解决、、、这些方法都有一定的弊端,在实际开发中,我们会采取使用事务来解决这个问题,这种方法简单而且开发效率高,容易维护。要求:在删除RoomType的同时把Room表中存在该房型的也删除.思路:在删除RooType的时候,我们通过RoomType.rTypeId=Room.rTypeId找到Room中存在该房型的记录,把也它删掉...
数据库操作教程 2022-09-23 17:41:05 -
MSSQL报错:参数数据类型text对于replace函数的参数1无效的解决办法
但是我们可以换一种方法解决这个问题。下面就来分析下解决办法...
数据库操作教程 2022-09-23 17:38:28