比如在某个表中使用 select xxx from xxx with(nolock) where xxxx 查询. 提示出错:由于数据移动,未能继续以 NOLOCK 方式扫描. 它有可能某些条件出错,某些条件不出错. 原因是有可能该表在物理文件存储中某一块数据损坏了.或者该表中的索引和表的数据不一致了. 解决办法-如果是整个库出错可以使用: 1.快速修复DBCC CHECKDB ('数据库名', REPAIR_FAST)     2.重建索引并修复DBCC CHECKDB ('数据库名', RE…
最近在系统运行中发现了一个错误,错误信息如下: 错误信息:查询A201412C20568单证信息错误 ---> System.Data.OleDb.OleDbException: 由于数据移动,未能继续以 NOLOCK 方式扫描. 一开始我认为企业的数据库是SQL SERVER 2005以上的版本,使用了以下方式: USE MASTER GO ALTER DATABASE work_yf SET SINGLE_USER GO --允许丢失数据修复 DBCC CHECKDB (work_yf, R…
使用金蝶K3时出现:名称或代码在系统中已被使用:错误代码:3604(E14H)source:Microsoft OLE DB provider for SQL SERVERDetail:由于数据移动,未能继续以NOLOCK方式扫描 SQL数据库存在错误需要修复,在确认没有任何用户连接账套的情况下,进行数据库修复:use masterdeclare @databasename varchar(255)set @databasename='要修复的数据库名' exec sp_dboption @da…
以前SQL Server 2008 不能登陆的时候,总是通过“计算机管理”→“SQL Server服务”更改一下,"SQL Server(MSSQLSERVER)".可是现在出现的问题却成了SQL Server服务打不开的情况,很是郁闷.如图: 通过网上查,才知道是因为SQL Server2008 与VS2012 共存的问题,当你电脑中同时装了这两样东西,SQL 就会出现上图中的情况. 解决办法:从控制面板或者其他辅助软件中找到”Microsoft SQL Server Expres…
使用DROP DATABASE 删除数据库  显示“无法删除数据库 ,因为该数据库当前正在使用. 解决办法:在删除某一个数据库(下例中的“DB1”数据库)前,强制kill掉该数据库上的所有数据库连接. 无法删除数据库 "#Test",因为该数据库当前正在使用 --查询分析器中执行下面的语句就行了. use master go declare @dbname sysname set @dbname='DB1' --这个是要删除的数据库库名 ) declare tb cursor loca…
在项目开发过程中,我们经常要做一些以时间为条件的查询,比如查询指定时间范围内的历史记录,然而这些时间都是从UI传递过来的参数,所以我们写的sql语句就必须用到字符串拼接.当然,在C#中写SQL语句还好处理,可以使用C#的字符串函数做对应的数据类型转换.但是,如果用的是存储过程的话,就有点纠结了.下面来说一下我在写存储过程中遇到的问题: 为了更加直接的说明问题,写如下一个简单的例子: declare @dateFrom datetime; declare @dateTo datetime; );…
Expression构建DataTable to Entity 映射委托   1 namespace Echofool.Utility.Common { 2 using System; 3 using System.Collections.Generic; 4 using System.Data; 5 using System.Linq.Expressions; 6 using System.Reflection; 7 using System.Reflection.Emit; 8 9 publ…
前言 最近测试了一个站点,这个站点挺有意思,发现没有关闭错误提示,初步猜测是SQL server数据库,后来验证确实是.在这里记录一下实战过程,并详细讲解一下用到的知识点. SQL server报错注入原理 SQL server报错注入的文章,网上有很多,大部分文章都列出了类似于公式的句子,却没有解释为什么使用这样的函数.这里用convert()函数举例,convert()函数是是将日期转换为新数据类型的通用函数. 对于咱们构造的payloadconvert(int,@@version),con…
一.Sql Server插入方案介绍 关于 SqlServer 批量插入的方式,有三种比较常用的插入方式,Insert.BatchInsert.SqlBulkCopy,下面我们对比以下三种方案的速度 1.普通的Insert插入方法 public static void Insert(IEnumerable<Person> persons) { using (var con = new SqlConnection("Server=.;Database=DemoDataBase;User…
表是用来存储数据和操作数据的逻辑结构,用来组织和存储数据,关系数据库中的所有数据都表现为表的形式,数据表由行和列组成.SQL Server中的数据表分为临时表和永久表,临时表存储在tempdb系统数据库中,当不再使用或退出SQL Server时,临时表会自动删除:永久表一旦创建之后,除非用户删除,否则将一直存在数据库文件中. 创建数据表的两种方法:(1) 通过对象资源管理器创建:(2) 通过Transact-SQL语句进行创建. 1 Transact-SQL创建表 1.1 语法 CREATE T…