sql server 自增长显式添加值】的更多相关文章

如果想在自增列添加数据,会提示我们不能插入显式值 解决:…
在上一篇文章也谈SQL Server 2008 处理隐式数据类型转换在运行计划中的增强中,我提到了隐式数据类型转换添加对于数据分布非常不平均的表.评估的数据行数与实际值有非常大出入的问题,进一步測试之后.我发现这种评估不准确性应该确实与推測的一样,它使用了变量的评估方式. 通过例如以下測试验证.首先建立数据分布不平均的測试表. USE tempdb GO CREATE TABLE _t( c varchar(50) ); CREATE INDEX IX_c ON _t( c ); GO -- 添…
建议4.TryParse比Parse好 如果注意观察,除string之外的所有的基元类型.会发现它们都有两个将字符串转换为自身类型的方法:Parse和TryParse.以类型double为例. 两者最大的区别是,如果字符串格式不满足转换的要求,Parse方法将会引发一个异常:TryParse方法则不会引发异常,它会返回false,同时将result置为0. //Parse int a = int.Parse("123a"); //TryParse int x = 0; if (int.…
最近发现Sql Server与.Net(C#)中星期值居然不匹配,倒不知道依哪一个了. 1.Sql Server declare @date datetime; set @date = '2017-04-11';--实际为星期二 select DatePart(weekday,@date); 执行结果: 2.C# #region 程序集 mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 \msc…
建议8: 避免给枚举类型的元素提供显式的值 一般情况下,没有必要给枚举类型的元素提供显式的值.创建枚举的理由之一,就是为了代替使用实际的数值.不正确地为枚举类型的元素设定显式的值,会带来意想不到的错误. 如果为建议7中的枚举类型Week增加一个元素,代码如下所示: enum Week { Monday = , Tuesday = , ValueTemp, Wednesday = , Thursday = , Friday = , Saturday = , Sunday = } 设想一下Value…
想要将值插入到自动编号(或者说是标识列,IDENTITY)中去,需要设定 SET IDENTITY_INSERT 示例: 1.首先建立一个有标识列的表:CREATE TABLE products (id int IDENTITY PRIMARY KEY, product varchar(40)) 2.尝试在表中做以下操作:INSERT INTO products (id, product) VALUES(3, 'garden shovel') 结果会导致错误:“当 IDENTITY_INSERT…
本文出处:http://www.cnblogs.com/wy123/p/6189100.html 标题有点拗口,来源于一个开发人员遇到的实际问题 先抛出问题:一个查询没有明确指定排序方式,那么,第二次执行这个同样的查询的时候,查询结果会不会与第一次的查询结果排序方式完全一样? 答案是不确定的,两个完全一样的查询,结果也完全一样,两次(多次)查询结果的排序方式有可能一致,有可能不一致. 如果不一致,又是什么原因导致同样的查询默认排序方式不一致? 以下简单分析几种情况,说明为什么查询同样的查询会出现…
我们都知道,Sql Server在一个数据量巨大的表中添加一个非空栏位是比较费心的,缺乏经验的DBA或是开发人员甚至可能鲁莽地直接添加导致阻塞相应业务,甚至可能因为资源欠缺造成实例的全局问题.当然这都是Sql 2008R2及以前版本的情况.在SQL2012中采用了新的实现方式.这里我将对比相应的实现方式给大家做个介绍.并简单说明Sql Server早期版本添加非空列的方法. 添加非空栏位的实现方式 早期版本(Sql Server2008R2及以前)添加非空栏位(要求有默认值)是对表中的所有数据行…
一.背景 我们遇到的问题如下图所示:自动增长无端端就按照这样的比例进行增长: (Figure1:问题所在) 尝试使用SSMS修改自动增长值,就会出现下面的错误: (Figure2:错误信息) 遇到上面的问题,我们需要解决两个问题: 1. 把数据文件收缩到一定范围内的值,腾出磁盘空间: 2. 重新设置自动增长的值,可以按照百分比,也可以使用指定的空间大小,我个人倾向使用n*1024M这样的值,仅供参考: 3. 如果有需要你也可以进行日志文件的收缩: 二.解决过程 1. 使用下面的脚本修改自动增长的…
/* 在SQL语句中通过系统存储过sp_addextendedproperty可为表字段添加上动态的说明(备注)下面是SQL SERVER帮助文档中对sp_addextendedproperty存储过程的描述 语法 */ sp_addextendedproperty     [ @name = ] { 'property_name' }     [ , [ @value = ] { 'value' }         [ , [ @level0type = ] { 'level0_object_…
本篇基本完全参考:sql--sp_addextendedproperty和sp_updateextendedproperty (Transact-SQL) 三个存储过程用法一样,以sp_addextendedproperty为例: sp_addextendedproperty [ @name = ]{ 'property_name' } [ , [ @value = ]{ 'value' } [, [ @level0type = ]{ 'level0_object_type' } , [ @le…
1,insert语句 insert into 表一(字段一,字段二,字段三) value(值一,值二,值三) 2,sql 插入多条语句,其中完整值之间用逗号分割 insert into 表一(字段一,字段二,字段三) values(值一,值二,值三),(值一,值二,值三) 3,inser into...select...即从不同的表中直接添加到表中,其中要求字段名称与数据类型保持一致 insert into 表二(字段一,字段二,字段三) select 字段一,字段二,字段三 from 表一 在…
我们都知道CHAR(integer_expression)将ASCII代码转换为字符.当integer_expression介于 0 和 255 之间的整数.如果该整数表达式不在此范围内,将返回 NULL 值.这些都是官方资料介绍的.具体参考https://msdn.microsoft.com/zh-cn/library/ms187323(v=sql.120).aspx 但是在我们最近的一次SQL SERVER 2005 迁移升级到SQL SERVER 2014的过程中发现了一些问题,发现官方文…
https://www.cnblogs.com/Brambling/p/7046148.html 最近遇到一个 SQL Server 排序的问题,以前也没了解过,然后这次碰到了. 才发现 SQL Server 排序的问题,在指定的排序列中 null 值会默认排在最前面,因为在 SQL Server 中 null 值默认为最小值. 后来问了一下万能的百度,找到了下面一种比较简单的处理方法. 首先建了一个表插入了一些测试数据. create table UserInfo ( UserInfoID i…
SQL Server表中的自动编号ID重新开始排列 说法一: 有两种方法: 方法1: truncate table 你的表名 --这样不但将数据删除,而且可以重新置位identity属性的字段. 方法2: delete from 你的表名 dbcc checkident(你的表名,reseed,0) 重新置位identity属性的字段,让其下个值从1开始 说法二: 1.TRUNCATE TABLE 删除表中的所有行,而不记录单个行删除操作. 语法 TRUNCATE TABLE name 参数 n…
SQL Server 2005.2008 的 datetime 最小值是:1753-01-01 00:00:00 最大值是:9999-12-31 23:59:59.997 这与 .NET 中的 DateTime.MinValue.DateTime.MaxValue 不匹配,与 System.Data.SqlTypes.SqlDateTime.MinValue.System.Data.SqlTypes.SqlDateTime.MaxValue 匹配. 其实 .NET 与 SQL Server 字段…
SQL Server 2008除了DateTime和SmallDateTime之外,又新增了四种时间类型,分别为:date,time,datetime2和datetimeoffset. 各时间类型范围.精度一览表: 数据类型 时间范围 精度 datetime 1753-01-01到9999-12-31 00:00:00 到 23:59:59.997 3.33毫秒 smalldatetime 1900-01-01 到 2079-06-06 00:00:00 到 23:59:59 分钟 date 0…
有的时候我们需要下放权限给不用的用户,让他们自己能管理一部分SQL Agent Job,此时需要详细记录谁在什么时间修改了Job 甚至删除了Job, 我们可以使用SQL Server 的Audit帮助我们完成记录,参考下面的脚本,根据你的环境改变路径.  创建Audit脚本 USE [master] GOCREATE SERVER AUDIT [SQLAgentJobAudit]TO FILE( FILEPATH = N'd:\logs',MAXSIZE = 0 MB,MAX_ROLLOVER_…
--允许插入显示插入主键id的值SET IDENTITY_INSERT [T0002_SType] ON 执行insert插入语句------------------ --关闭 插入显示值SET IDENTITY_INSERT [T0002_SType] OFF…
作为一名.NET未入门的程序员,第一次发随笔. 前不久参与写的公司业务程序,目前这个程序的后期维护修复漏洞工作由我来负责.由于业务关系重大,每一步对程序代码的操作都非常谨慎,一旦操作失误,造成的损失和用户影响都是巨大的和不易恢复的. 现在发现了一些不容易在目前程序中通过修补漏洞和代码来实现的业务逻辑,想了几个方案,最后还是决定在线上数据库中增加字段.和上级申请成功后,开始执行这个"危险的操作",但是数据库shi 做了分表的. 以前我对数据库的操作知识仅局限于 简单的直接执行一条SQL语…
有枚举如下: [Flags] public enum Color { Red = , Green = , Blue = , White = } 定义三个枚举变量,并将值存入数据库: Color color0=Color.Red; Color color1=Color.Red|Color.Blue; Color color2=Color.Red|Color.White; 将color0(1).color1(5).color2(9)三个值存入数据库,通过SQL语句获取颜色中包含Red的所有数据行,读…
/* 数据如下: name val memo a 2 a2(a的第二个值) a 1 a1--a的第一个值 a 3 a3:a的第三个值 b 1 b1--b的第一个值 b 3 b3:b的第三个值 b 2 b2b2b2b2 b 4 b4b4 b 5 b5b5b5b5b5 */ --创建表并插入数据: ),val )) , 'a2(a的第二个值)') , 'a1--a的第一个值') , 'a3:a的第三个值') , 'b1--b的第一个值') , 'b3:b的第三个值') , 'b2b2b2b2') ,…
/* 数据如下: name val memo a 2 a2(a的第二个值) a 1 a1--a的第一个值 a 3 a3:a的第三个值 b 1 b1--b的第一个值 b 3 b3:b的第三个值 b 2 b2b2b2b2 b 4 b4b4 b 5 b5b5b5b5b5 */ --创建表并插入数据: create table tb(name varchar(10),val int,memo varchar(20)) insert into tb values('a', 2, 'a2(a的第二个值)')…
今天在统计报表的时候有这么一个需求,将一列字符串拼接成一行,然后展示到新的列中. 每一项的服务列表如下: 最终想要的结果是 sql如下: select AuxTypeName + ',' from ( SELECT DISTINCT(AuxTypeName) FROM _VIPHall_Link_AuxType LEFT JOIN dbo.[_VIPHall] ON [_VIPHall_Link_AuxType].VIPHallID = [_VIPHall].VIPHallID LEFT JOI…
Create PROCEDURE [dbo].[SP_UpdateIdentityId] ( ) , @beforeId INT , @afterId INT ) AS BEGIN IF @beforeId IS NULL OR @afterId IS NULL OR @tableName IS NULL BEGIN PRINT 'param is null' RETURN END DECLARE @tb_id INT= OBJECT_ID(@tableName) IF @tb_id IS NU…
.添加表说明 EXECUTE sp_addextendedproperty N'MS_Description','表说明',N'user',N'dbo',N'table',N'表名',NULL,NULL .删除表说明 EXEC sp_dropextendedproperty N'MS_Description','user','dbo','table', '表名', NULL,NULL .添加字段说明 EXECUTE sp_addextendedproperty N'MS_Description'…
首先建一个表插入一些测试数据 create table UserInfo ( UserInfoID        int not null identity(1,1) primary key, User_No          int null, User_Names    nvarchar(16)   null ) insert into UserInfo(User_No,User_Names) select '104','名称三' union all select '103','名称二' u…
名称 海鲜水产 水果蔬菜 海参 肉禽蛋 牛排 腊味 生鲜食品 将以上一列变成: 生鲜食品,海鲜水产,水果蔬菜,海参,牛排,肉禽蛋,腊味 sql for xml path('')…
语法如下: --存储过程一CREATE PROCEDURE testProc @out VARCHAR(500) OUTPUT AS BEGIN SET @out='操作成功' RETURNEND --存储过程二CREATE PROCEDURE testTwoProc @out VARCHAR(500) OUTPUT AS BEGIN --方式一 EXEC testProc @out OUTPUT PRINT @out --方式二 DECLARE @msg VARCHAR(500) --执行存储…
declare @i INT update 表名 SET [列名]=@i,@i=@i+ WHERE 条件…