问题原因,同事把表的自增长ID主键,改成是自定义的编号,没有严格的并发测试.在多线程同时插入数据时会引起主键冲突: 看了一些道友的文章,尝试了几个方法.经测试 使用 WITH(updlock)  可以解决.…
问题一.忘记了登录Microsoft SQL Server 2008 的sa的登录密码 解决方法:先用windows身份验证的方式登录进去,然后在‘安全性’-‘登录’-右键单击‘sa’-‘属性’,修改密码点击确定就可以了. 问题二.已成功与服务器建立连接,但是在登录过程中发生错取.(provider:共享内存提供程序,error:0-管道的另一端上无任何进程.)(Microsoft SQL Server,错误:233) 解决方法:打开‘程序’-‘所有程序’-‘Microsoft SQL Serv…
在SQL SERVER 中如果我们想要使主键按照一定规则自动增长我们可以这样做: 这里我们新建一张研究表,里面有研究ID,研究人员姓名和研究医院. 我们使SicentificId 设为主键 并且从1开始每次递加1. 这里要更各位强调一下使用Identity 关键字的前提要求是 数据类型必须为 int ,decimal,bigint,smallint等数值类型. 但是很多时候只有一个数字编号并不能满足我们的要求, 这里笔者的需求就是编号要按照字母加数字的组合,并且字母固定且数字每次递增1. 那么我…
一.对主键的修改 主键值都会带有主键约束,当执行update操作或是其他操作的时候就会受到限制无法修改,解决的方法是:取消主键约束->删掉主键列->插入修改后的主键值. (1)取消主键约束 取消主键约束的SQL语句如下: alter table [表名] drop constraint [主键名]输入表名和主键名时不要带中括号(下同),这里值得说明的是[主键名]并不是主键所在的字段名.主键名如果没有指定系统会自动分配一个,这时就需要查询主键名,查询主键名的方法如下: --使用sql存储方式进行…
主键约束 表通常具有包含唯一标识表中每一行的值的一列或一组列. 这样的一列或多列称为表的主键 (PK),用于强制表的实体完整性. 由于主键约束可保证数据的唯一性,因此经常对标识列定义这种约束. 如果为表指定了主键约束, 数据库引擎 将通过为主键列自动创建唯一索引来强制数据的唯一性. 当在查询中使用主键时,此索引还允许对数据进行快速访问. 如果对多列定义了主键约束,则一列中的值可能会重复,但来自主键约束定义中所有列的值的任何组合必须唯一. 如下图所示, Purchasing.ProductVend…
主键 数据库主键是指表中一个列或列的组合,其值能唯一地标识表中的每一行.这样的一列或多列称为表的主键,通过它可强制表的实体完整性.当创建或更改表时可通过定义 PRIMARY KEY约束来创建主键.一个表只能有一个 PRIMARY KEY 约束,而且 PRIMARY KEY 约束中的列不能接受空值.由于 PRIMARY KEY 约束确保唯一数据,所以经常用来定义标识列. 主键的作用 主键的主要作用如下: (1)保证实体的完整性: (2)加快数据库的操作速度: (3) 在表中添加新记录时,数据库会自…
主键表: CREATE TABLE [dbo].[KEYCODE]( [KeyName] [varchar](12) NOT NULL, [KeyTableName] [varchar](40) NULL, [KeyFieldName] [varchar](30) NULL, [StrLen] [int] NULL, [CodeLen] [int] NULL, [CodeMin] [float] NULL, [CodeMax] [float] NULL, [CodeType] [varchar]…
主键约束: 遵循关系型模型中的第二范式.唯一的识别一条记录,不能为空. CREATE TABLE Persons ( Id_P int NOT NULL PRIMARY KEY, LastName varchar(255) NOT NULL, FirstName varchar(255), Address varchar(255), City varchar(255) )…
一.定义 1.1.什么是主键和外键 关系型数据库中的一条记录中有若干个属性,若其中某一个属性组(注意是组)能唯一标识一条记录,该属性组就可以成为一个主键. 比如: 学生表(学号,姓名,性别,班级)其中每个学生的学号是唯一的,学号就是一个主键. 课程表(课程编号,课程名,学分) 其中课程编号是唯一的,课程编号就是一个主键. 成绩表(学号,课程号,成绩)成绩表中单一一个属性无法唯一标识一条记录,学号和课程号的组合才可以唯一标识一条记录,所以 学号和课程号的属性组是一个主键. 1.2.主键和外键的作用…
其实所有的死锁最深层的原因就是一个:资源竞争 表现一: 一个用户A 访问表A(锁住了表A),然后又访问表B,另一个用户B 访问表B(锁住了表B),然后企图访问表A,这时用户A由于用户B已经锁住表B,它必须等待用户B释放表B,才能继续,好了他老人家就只好老老实实在这等了,同样用户B要等用户A释放表A才能继续这就死锁了. 解决方法: 这种死锁是由于你的程序的BUG产生的,除了调整你的程序的逻辑别无他法 仔细分析你程序的逻辑: 1:尽量避免同时锁定两个资源 2: 必须同时锁定两个资源时,要保证在任何时…
SQL SERVER 2014安装完所有的数据库工具后,缺少开发工具 Business Intelligence   之解决办法. https://msdn.microsoft.com/en-us/library/bb522628(v=sql.120).aspx https://www.microsoft.com/zh-CN/download/details.aspx?id=36843   visual studio 2012…
通过sql命令 USE ZGZY; GO --由完整模式设置为简单恢复模式 ALTER DATABASE ZGZY SET RECOVERY SIMPLE WITH NO_WAIT GO --收缩日志文件到1MB ) GO --恢复为完整模式 ALTER DATABASE ZGZY SET RECOVERY FULL WITH NO_WAIT GO 通过UI 1,将数据库的恢复模式由完整模式修改为简单恢复模式 数据库对象右键\属性\选项,将恢复模式由完整修改为简单模式.修改为简单模式的原因是使s…
initerrlog: 无法打开错误日志文件 'D:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Log 1. 设置文件权限 2.如果设置文件也无效过 直接 把 Errorg文件 替换…
获取一个表中最大的值. function GetNEWID(tablename: string): string; begin Result:=''; with DMW_Public.DQ_Pub do begin Close; SQL.Clear; SQL.Add('SELECT IDENT_CURRENT('''+tablename+''') + IDENT_INCR('''+tablename+''') as newid'); Open; ' else Result:=Fieldbynam…
问题:数据库名称出现“可疑”字样 解决: 方法一: 重新还原数据库 方法二: 贴上语句:(DB_CS:你的数据库名) 第一步: ALTER DATABASE DB_CS SET EMERGENCY 第二步:ALTER DATABASE DB_CS SET SINGLE_USER(用时可能较久) 第三步:DBCC CheckDB (DB_CS , REPAIR_ALLOW_DATA_LOSS) 第四步:ALTER DATABASE DB_CS SET MULTI_USER…
出现这个错误是账户无法打开默认数据库导致的 修改一下该账户的默认打开数据库即可. 如果很不幸,你的sa帐号和windows身份验证默认都打开同一个数据库,那么无论换哪种方式登录都是一样没用的 如果你有一个帐号能登录,直接在安全性-登录名那里右键用户名属性修改默认数据库为master即可. 如果2种方式都无法登录,则按下面的命令修改一下sa的默认数据库 如果很不幸,把sa密码给忘记了只能以windows身份验证登录的话,你恰巧又不知道windows登录名的话, 嘎就只能想办法查一下windows身…
iBatis的sqlMap配置文件的selectKey元素有个type属性,可以指定pre或者post表示前生成(pre)还是后生成(post). Oracle设置 <!-- Oracle SEQUENCE --> <insert id="insertProduct-ORACLE" parameterClass="com.domain.Product"> <selectKey resultClass="int" ke…
原文:MS SQL SERVER搜索某个表的主键所在的列名 SELECT SYSCOLUMNS.name  FROM SYSCOLUMNS,SYSOBJECTS,SYSINDEXES,SYSINDEXKEYS   WHERE SYSCOLUMNS.id = object_id('Tab_XXX') --syscolumns.id为该列所属的表对象ID   AND SYSOBJECTS.xtype = 'PK' --sysobjects.xtype对象类型  AND SYSOBJECTS.pare…
在实际开发中,可能很少人会手写sql脚本来操作数据库的种种.特别是微软的MS SQL Server数据库,它的SQL Server Management Studio对数据库的图形化操作极致简便,从而导致很多人都不会或不熟悉使用SQL脚本操作数据库. 接下面介绍的是我们日常开发中常规性的各种操作,先看看基本知识,随后使用coding来表述. SQL Server 常见五种约束: Primary Key --主键约束 Foreign Key --外键约束 Unique --唯一约束 Default…
SQL Server分区键列必须是主键一部分. 必须把分区列包含在主键/唯一约束/唯一索引的键列中. USE tempdb GO -- 测试表 CREATE TABLE dbo.tb( id int, CONSTRAINT PK_id PRIMARY KEY CLUSTERED( id) ) INSERT dbo.tb UNION ALL GO -- 切换为分区表 -- 分区函数 CREATE PARTITION FUNCTION PF_test(int) AS RANGE LEFT ) --…
<insert id="abatorgenerated_insert" parameterClass="net.xxxxxl.dataobject.Users"> <!-- WARNING - This element is automatically generated by Abator for iBATIS, do not modify. This element was generated :: CST . --> insert in…
MS SQL SERVER 中的系统表 序号 名称 说明 备注 1 syscolumns 每个表和视图中的每列在表中占一行,存储过程中的每个参数在表中也占一行.   2 syscomments 包含每个视图.规则.默认值.触发器.CHECK 约束.DEFAULT 约束和存储过程的项.text 列包含原始 SQL 定义语句,其最大大小限制为 4 MB. 不应删除 syscomments 中的项.如果手工删除或修改 syscomments 中的项,则对应的存储过程将不能正常工作.若要隐藏或加密存储过…
(火炬)MS SQL Server数据库案例教程 创建数据库: CREATE DATABASE TDB //数据库名称 ON ( NAME=TDB_dat,//逻辑文件名 在创建数据库完成之后语句中引用的文件名 数据库必须唯一 FILENAME='D:\mydb\TDB_dat.mdf',//操作系统在创建文件时使用的路径和文件名 SIZE=10,//指定数据文件或日志文件的初始大小(默认单位为MB) MAXSIZE=50,// 指定数据文件或日志文件的最大大小,如果没有指定大小那么文件将磁盘曾…
原文:Oracle\MS SQL Server Update多表关联更新 一条Update更新语句是不能更新多张表的,除非使用触发器隐含更新.而表的更新操作中,在很多情况下需要在表达式中引用要更新的表以外的数据.我们先来讨论根据其他表数据更新你要更新的表   一.MS    SQL    Server   多表关联更新      sql server提供了update的from 子句,可以将要更新的表与其它的数据源连接起来.虽然只能对一个表进行更新,但是通过将要更新的表与其它的数据源连接起来,就…
1.没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) 2.I/O吞吐量小,形成了瓶颈效应. 3.没有创建计算列导致查询不优化. 4.内存不足 5.网络速度慢 6.查询出的数据量过大(可以采用多次查询,其他的方法降低数据量) 7.锁或者死锁(这也是查询慢最常见的问题,是程序设计的缺陷) 8.sp_lock,sp_who,活动的用户查看,原因是读写竞争资源. 9.返回了不必要的行和列 10.查询语句不好,没有优化 可以通过如下方法来优化查询 1.把数据.日志.索引放到不同的I/O…
MS Sql Server 提供了很多数据库修复的命令,当数据库质疑或是有的无法完成读取时可以尝试这些修复命令.  1. DBCC CHECKDB  重启服务器后,在没有进行任何操作的情况下,在SQL查询分析器中执行以下SQL进行数据库的修复,修复数据库存在的一致性错误与分配错误.   use master declare @databasename varchar(255) set @databasename='需要修复的数据库实体的名称' exec sp_dboption @database…
DataGrip支持几乎所有主流的关系数据库产品,如DB2.Derby.H2.MySQL.Oracle.PostgreSQL.SQL Server.Sqllite及Sybase等,并且提供了简单易用的界面,允许您以不同模式执行查询,在本篇文章中,我们介绍的是将DataGrip连接到MS SQL Server的方法. JetBrAIns DataGrip教程 DataGrip可以涵盖SQL开发人员的一些特定需求,例如从OSX 连接到SQL Server,甚至使用Windows身份验证.自从发布Da…
在日常工作中,经常需要连接到远程的MS SQL Server数据库中.当然也经常会出现下面的连接错误. 解决方法: 1. 设置数据库允许远程连接,数据库实例名-->右键--->属性---Connections---->勾选 Allow remote connections to this server. 2. 开启TCP/IP协议: Sql Server Configuration Manager---> Protocols for SQLEXPRESS ---> TCP/I…
在英文版的操作系统中安装的MS SQL server,会出现中文字段无法被匹配到.其原因在于英文环境下安装的MS SQL server的排序规则不包括中文. 所以解决办法就是更改MS SQL server的排序规则:一般情况下,只需要右键数据库->properties->optiones->collation->chose "Chinese RPC CI AS"->OK.如果执行成功则OK. 但是如果数据库中设置了一些临时表的依赖,那么执行会报错. 解决办…
开发与企业应用中,好几个版本SQL Server相互链接.分布式读取与存储,需要实现sp_addlinkedserver.SQL Server 2000, SQL Server 2008, SQL Server 2012和SQL Server 2014: 但今天在本机的MS SQL Server 2014中,想添加SQL Server 2000的链接,使用下面的方法:<SQL Server创建链接服务器的一些存储过程和例子>http://www.cnblogs.com/insus/archiv…