精华内容
下载资源
问答
  • create table B.test as select * from A.test;--------------结构,数据内容一致,但是不会复制索引以及外键 所以分两步: 1:create table B.test like A.test;-------复制表结构 2:insert into B.test select * ...
    create table B.test as select * from A.test;--------------结构,数据内容一致,但是不会复制索引以及外键
    所以分两步:
    1:create table B.test like A.test;-------复制表结构
    2:insert into B.test select * from A.test;----------复制数据
     
    
    Truncate Table  Truncate是SQL中的一个删除数据表内容的语句,用法是:
      TRUNCATE TABLE [Table Name]。
      下面是对Truncate语句在MSSQLServer2000中用法和原理的说明:
      Truncate table 表名 速度快,而且效率高,因为: 
      TRUNCATE TABLE 在功能上与不带 WHERE 子句的 DELETE 语句相同:二者均删除表中的全部行。但 TRUNCATE TABLE 比 DELETE 速度快,且使用的系统和事务日志资源少。 
      DELETE 语句每次删除一行,并在事务日志中为所删除的每行记录一项。TRUNCATE TABLE 通过释放存储表数据所用的数据页来删除数据,并且只在事务日志中记录页的释放。 
      TRUNCATE TABLE 删除表中的所有行,但表结构及其列、约束、索引等保持不变。新行标识所用的计数值重置为该列的种子。如果想保留标识计数值,请改用 DELETE。如果要删除表定义及其数据,请使用 DROP TABLE 语句。 
      对于由 FOREIGN KEY 约束引用的表,不能使用 TRUNCATE TABLE,而应使用不带 WHERE 子句的 DELETE 语句。由于 TRUNCATE TABLE 不记录在日志中,所以它不能激活触发器。 
      TRUNCATE TABLE 不能用于参与了索引视图的表。
      对用TRUNCATE TABLE删除数据的表上增加数据时,要使用UPDATE STATISTICS来维护索引信息。

    一,在mysql数据库中,如何修改已有字段的长度呢?

    可以使用alter table语句来完成:
    alter table 表名 modify column 字段名 类型;

    举例:
    数据库中user表 name字段是varchar(30)

    sql语句
     

    复制代码代码示例:
    alter table user modify column name varchar(50) ;

    二,mysql 修改列的长度 

    表名:test
    列名:number 
    类型:char(20)

    例如
    数据库中user表 name字段是varchar(30)

    sql语句:
     

    复制代码代码示例:
    alter table test modify column number varchar(50) ;
    展开全文
  • 建立辅助列,查找B列数据是否重复。 =IF(COUNTIF(B:B,B1)>1,"重复","") 按住公式单元格右下角实心十字,向下拖拽复制公式。 =IF(COUNTIF(A:A,A1)>1,A1,"") 选定C列,数据——有效性——公式,输入=COUNTIF($...
    推荐方法:
    
    建立辅助列,查找B列数据是否重复。

    =IF(COUNTIF(B:B,B1)>1,"重复","")
    按住公式单元格右下角实心十字,向下拖拽复制公式。
    =IF(COUNTIF(A:A,A1)>1,A1,"")

    选定C列,数据——有效性——公式,输入=COUNTIF($C$1:$C1,$C1)=1  确定
    =COUNTIF($A$1:$A1,$A1)=1

    b1 = countif(A:A,A1),选中B1,双击选择框右下角小黑点,或者按住左键,向下拖动小黑点
    在B列筛选出>1的数据出来,这些都是重复的
    展开全文
  • 关于SQL Server数据库标识列

    千次阅读 2014-04-08 00:36:25
    一、标识列的定义以及特点  SQL Server标识列又称标识符,习惯上又叫... 3、值不重复,具有标识每一行的作用,每个表只能一个标识列。  由于以上特点,使得标识列在数据库的设计得到广泛的使用。
    一、标识列的定义以及特点
    
      SQL Server中的标识列又称标识符列,习惯上又叫自增列。
      该种列具有以下三种特点:
      1、列的数据类型为不带小数的数值类型
      2、在进行插入(Insert)操作时,该列的值是由系统按一定规律生成,不允许空值
      3、列值不重复,具有标识表中每一行的作用,每个表只能有一个标识列。
      由于以上特点,使得标识列在数据库的设计中得到广泛的使用。
      二、标识列的组成
      创建一个标识列,通常要指定三个内容:
      1、类型(type)
      在SQL Server 2000中,标识列类型必须是数值类型,如下:
      decimal、int、numeric、smallint、bigint 、tinyint
      其中要注意的是,当选择decimal和numeric时,小数位数必须为零
      另外还要注意每种数据类型所有表示的数值范围
      2、种子(seed)
      是指派给表中第一行的值,默认为1
      3、递增量(increment)
      相邻两个标识值之间的增量,默认为1。
      三、标识列的创建与修改
      标识列的创建与修改,通常在企业管理器和用Transact-SQL语句都可实现,使用企业管理管理器比较简单,请参考SQL Server的联机帮助,这里只讨论使用Transact-SQL的方法
      1、创建表时指定标识列
      标识列可用 IDENTITY 属性建立,因此在SQL Server中,又称标识列为具有IDENTITY属性的列或IDENTITY列。
      下面的例子创建一个包含名为ID,类型为int,种子为1,递增量为1的标识列
      CREATE TABLE T_test
      (ID int IDENTITY(1,1),
      Name varchar(50)
      )
      2、在现有表中添加标识列
      下面的例子向表T_test中添加一个名为ID,类型为int,种子为1,递增量为1的标识列
      --创建表
      CREATE TABLE T_test
      (Name varchar(50)
      )
      --插入数据
      INSERT T_test(Name) VALUES(’张三’)
      --增加标识列
      ALTER TABLE T_test
      ADD ID int IDENTITY(1,1)
      3、判段一个表是否具有标识列
      可以使用 OBJECTPROPERTY 函数确定一个表是否具有 IDENTITY(标识)列,用法:
      Select OBJECTPROPERTY(OBJECT_ID(’表名’),’TableHasIdentity’)
      如果有,则返回1,否则返回0
      4、判断某列是否是标识列
      可使用 COLUMNPROPERTY 函数确定 某列是否具有IDENTITY 属性,用法
      SELECT COLUMNPROPERTY( OBJECT_ID(’表名’),’列名’,’IsIdentity’)
      如果该列为标识列,则返回1,否则返回0
      5、查询某表标识列的列名
      SQL Server中没有现成的函数实现此功能,实现的SQL语句如下
      SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.columns
      WHERE TABLE_NAME=’表名’ AND COLUMNPROPERTY(
      OBJECT_ID(’表名’),COLUMN_NAME,’IsIdentity’)=1
      6、标识列的引用
      如果在SQL语句中引用标识列,可用关键字IDENTITYCOL代替
      例如,若要查询上例中ID等于1的行,
      以下两条查询语句是等价的
      SELECT * FROM T_test WHERE IDENTITYCOL=1
      SELECT * FROM T_test WHERE ID=1
      7、获取标识列的种子值
      可使用函数IDENT_SEED,用法:
      SELECT IDENT_SEED (’表名’)
      8、获取标识列的递增量
      可使用函数IDENT_INCR ,用法:
      SELECT IDENT_INCR(’表名’)
      9、获取指定表中最后生成的标识值
      可使用函数IDENT_CURRENT,用法:
      SELECT IDENT_CURRENT(’表名’)
      注意事项:当包含标识列的表刚刚创建,为经过任何插入操作时,使用IDENT_CURRENT函数得到的值为标识列的种子值,这一点在开发数据库应用程序的时候尤其应该注意。
      总结一下标识列在复制中的处理方法
      1、快照复制
      在快照复制中,通常无须考虑标识列的属性。
      2、事务复制
      举例:
      发布数据库A,订阅数据库B,出版物为T_test_A,订阅表为T_test_B
      CREATE TABLE T_test_A
      (ID int IDENTITY(1,1),
      Name varchar(50)
      )
      CREATE TABLE T_test_B
      (ID int IDENTITY(1,1),
      Name varchar(50)
      )
      在这种情况下,复制代理将无法将新行复制到库B,因为列ID是标识列,不能给标识列显示提供值,复制失败。
      这时,需要为标识列设置NOT FOR REPLICATION 选项。这样,当复制代理程序用任何登录连接到库B上的表T_test时,该表上的所有 NOT
      FOR REPLICATION 选项将被激活,就可以显式插入ID列。
      这里分两种情况:
      1、库B的T_test表不会被用户(或应用程序)更新
      最简单的情况是:如果库B的T_test不会被用户(或应用程序)更新,那建议去掉ID列的标识属性,只采用简单int类型即可。
      2、库B的T_test表是会被其他用户(或应用程序)更新
      这种情况下,两个T_test表的ID列就会发生冲突,举例:
      在库A中执行如下语句:
      INSERT T_test_A(Name) VALUES(’Tom’)(假设ID列为1)
      在库B中执行如下语句:
      INSERT T_test_B(Name) VALUES(’Pip’)(假设ID列为1)
      这样,就会在库A和库B的两个表分别插入一条记录,显然,是两条不同的记录。
      然而事情还没有结束,待到预先设定的复制时间,复制代理试图把记录"1 TOM"插入到库B中的T_test表,但库B的T_test_B表已经存在
      ID为1的列,插入不会成功,通过复制监视器,我们会发现复制失败了。
      解决以上问题的方法有:
      (1)为发布方和订阅方的标识列指定不同范围的值,如上例可修改为:
      --确保该表记录不会超过10000000
      CREATE TABLE T_test_A
      (ID int IDENTITY(1,1),
      Name varchar(50)
      )
      CREATE TABLE T_test_B
      (ID int IDENTITY(10000000,1),
      Name varchar(50)
      )
      (2)使发布方和订阅方的标识列的值不会重复, 如
      --使用奇数值
      CREATE TABLE T_test_A
      (ID int IDENTITY(1,2),
      Name varchar(50)
      )
      --使用偶数值
      CREATE TABLE T_test_B
      (ID int IDENTITY(2,2),
      Name varchar(50)
      )
      这种办法可推广,当订阅方和发布方有四处时,标识列属性的定义分别如下
      (1,4),(2,4),(3,4),(4,4)
      3、合并复制
      采用事务复制中解决方法,只要使发布表和订阅表标识列的值不重复既可。
    展开全文
  • 漫谈SQL Server标识列

    千次阅读 2008-07-31 08:34:00
    该种具有以下三种特点:1、的数据类型为不带小数的数值类型2、进行插入(Insert)操作时,该的值是由系统按一定规律生成,不允许空值3、值不重复,具有标识每一行的作用,每个表只能一个标识列。...
      
    

    漫谈SQL Server中的标识列

    一、标识列的定义以及特点

    SQL Server中的标识列又称标识符列,习惯上又叫自增列。
    该种列具有以下三种特点:

    1、列的数据类型为不带小数的数值类型
    2、在进行插入(Insert)操作时,该列的值是由系统按一定规律生成,不允许空值
    3、列值不重复,具有标识表中每一行的作用,每个表只能有一个标识列。

    由于以上特点,使得标识列在数据库的设计中得到广泛的使用。

    二、标识列的组成
    创建一个标识列,通常要指定三个内容:
    1、类型(type)
    在SQL Server 2000中,标识列类型必须是数值类型,如下:
    decimal、int、numeric、smallint、bigint 、tinyint
    其中要注意的是,当选择decimal和numeric时,小数位数必须为零
    另外还要注意每种数据类型所有表示的数值范围

    2、种子(seed)
    是指派给表中第一行的值,默认为1

    3、递增量(increment)
    相邻两个标识值之间的增量,默认为1。

    三、标识列的创建与修改
    标识列的创建与修改,通常在企业管理器和用Transact-SQL语句都可实现,使用企业管理管理器比较简单,请参考SQL Server的联机帮助,这

    里只讨论使用Transact-SQL的方法

    1、创建表时指定标识列
    标识列可用 IDENTITY 属性建立,因此在SQL Server中,又称标识列为具有IDENTITY属性的列或IDENTITY列。
    下面的例子创建一个包含名为ID,类型为int,种子为1,递增量为1的标识列
    CREATE TABLE T_test
    (ID int IDENTITY(1,1),
    Name varchar(50)
    )

    2、在现有表中添加标识列
    下面的例子向表T_test中添加一个名为ID,类型为int,种子为1,递增量为1的标识列
    --创建表
    CREATE TABLE T_test
    (Name varchar(50)
    )

    --插入数据
    INSERT T_test(Name) VALUES('张三')

    --增加标识列
    ALTER TABLE T_test
    ADD ID int IDENTITY(1,1)

    3、判段一个表是否具有标识列

    可以使用 OBJECTPROPERTY 函数确定一个表是否具有 IDENTITY(标识)列,用法:
    Select OBJECTPROPERTY(OBJECT_ID('表名'),'TableHasIdentity')
    如果有,则返回1,否则返回0

    4、判断某列是否是标识列

    可使用 COLUMNPROPERTY 函数确定 某列是否具有IDENTITY 属性,用法
    SELECT COLUMNPROPERTY( OBJECT_ID('表名'),'列名','IsIdentity')
    如果该列为标识列,则返回1,否则返回0

    4、查询某表标识列的列名
    SQL Server中没有现成的函数实现此功能,实现的SQL语句如下
    SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.columns
        WHERE TABLE_NAME='表名' AND   COLUMNPROPERTY(      
           OBJECT_ID('表名'),COLUMN_NAME,'IsIdentity')=1

    5、标识列的引用

    如果在SQL语句中引用标识列,可用关键字IDENTITYCOL代替
    例如,若要查询上例中ID等于1的行,
    以下两条查询语句是等价的
    SELECT * FROM T_test WHERE IDENTITYCOL=1
    SELECT * FROM T_test WHERE ID=1

    6、获取标识列的种子值

    可使用函数IDENT_SEED,用法:
    SELECT IDENT_SEED ('表名')

    7、获取标识列的递增量

    可使用函数IDENT_INCR ,用法:
    SELECT IDENT_INCR('表名')

    8、获取指定表中最后生成的标识值

    可使用函数IDENT_CURRENT,用法:
    SELECT IDENT_CURRENT('表名')
    注意事项:当包含标识列的表刚刚创建,为经过任何插入操作时,使用IDENT_CURRENT函数得到的值为标识列的种子值,这一点在开发数据库应用程序的时候尤其应该注意。

     

    下面主要总结一下标识列在复制中的处理方法

    1、快照复制
        在快照复制中,通常无须考虑标识列的属性。

    2、事务复制
        举例:
        发布数据库A,订阅数据库B,出版物为T_test_A,订阅表为T_test_B
        CREATE TABLE T_test_A
    (ID int IDENTITY(1,1),
       Name varchar(50)
    )
        CREATE TABLE T_test_B
    (ID int IDENTITY(1,1),
       Name varchar(50)
    )
        
        在这种情况下,复制代理将无法将新行复制到库B,因为列ID是标识列,不能给标识列显示提供值,复制失败。
        这时,需要为标识列设置NOT FOR REPLICATION 选项。这样,当复制代理程序用任何登录连接到库B上的表T_test时,该表上的所有 NOT
        FOR REPLICATION 选项将被激活,就可以显式插入ID列。

        这里分两种情况:
        1、库B的T_test表不会被用户(或应用程序)更新
        最简单的情况是:如果库B的T_test不会被用户(或应用程序)更新,那建议去掉ID列的标识属性,只采用简单int类型即可。

        2、库B的T_test表是会被其他用户(或应用程序)更新

        这种情况下,两个T_test表的ID列就会发生冲突,举例:
        在库A中执行如下语句:
        INSERT T_test_A(Name) VALUES('Tom')(假设ID列为1)
        在库B中执行如下语句:
        INSERT T_test_B(Name) VALUES('Pip')(假设ID列为1)
        这样,就会在库A和库B的两个表分别插入一条记录,显然,是两条不同的记录。
        然而事情还没有结束,待到预先设定的复制时间,复制代理试图把记录"1 TOM"插入到库B中的T_test表,但库B的T_test_B表已经存在

    ID为1的列,插入不会成功,通过复制监视器,我们会发现复制失败了。
        解决以上问题的方法有:
       (1)为发布方和订阅方的标识列指定不同范围的值,如上例可修改为:
          --确保该表记录不会超过10000000
          CREATE TABLE T_test_A
    (ID int IDENTITY(1,1),
       Name varchar(50)
    )
        CREATE TABLE T_test_B
    (ID int IDENTITY(10000000,1),
       Name varchar(50)
    )
        (2)使发布方和订阅方的标识列的值不会重复, 如
          --使用奇数值
          CREATE TABLE T_test_A
    (ID int IDENTITY(1,2),
       Name varchar(50)
    )
          --使用偶数值
          CREATE TABLE T_test_B
    (ID int IDENTITY(2,2),
       Name varchar(50)
    )
         这种办法可推广,当订阅方和发布方有四处时,标识列属性的定义分别如下
         (1,4),(2,4),(3,4),(4,4)

    3、合并复制
        采用事务复制中解决方法,只要使发布表和订阅表标识列的值不重复既可。

    1、创建表时指定标识列标识列可用 IDENTITY 属性建立,因此在SQL Server中,又称标识列为具有IDENTITY属性的列或IDENTITY列。2、在现有表中添加标识列下面的例子向表T_test中添加一个名为ID,类型为int,种子为1,递增量为1的标识列--创建表CREATE TABLE T_test(Name varchar(50))

    展开全文
  • ------------------------...假设第一份数据在A列,第二份数据在B列,判断B 列数据是否与A 列重复 ----------------- 1.加辅助列C,公式如下: 1.1 C1填写公式:=IF(COUNTIF(A:A,B1)>0,"重...
  • 不能表标识列插入显示值

    千次阅读 2018-12-20 09:59:12
    当 IDENTITY_INSERT 设置为 OFF 时,不能向表 'OrderList' 标识列插入显式值"} 对于这个异常可以从两个角度来处理:A:数据库执行语句 B:直接修改NHibernate持久化类映射配置文件id节点 A数据库执行语句:...
  • Oracle创建自动标识列

    千次阅读 2016-10-02 10:11:59
     insert into admin values (INNERID.nextval,'b');  insert into admin values (INNERID.nextval,'c');  insert into admin values (INNERID.nextval,'d'); 4、创建触发器(注意这里无法设置id...
  • 漫谈SQL Server标识列(一)

    千次阅读 2006-12-07 23:33:00
    该种具有以下三种特点:1、的数据类型为不带小数的数值类型2、进行插入(Insert)操作时,该的值是由系统按一定规律生成,不允许空值3、值不重复,具有标识每一行的作用,每个表只能一个标识列。...
  • 当 IDENTITY_INSERT 设置为 OFF 时,不能为表标识列插入显式值 {"当 IDENTITY_INSERT 设置为 OFF 时,不能向表 'OrderList' 标识列插入显式值"} 对于这个异常可以从两个角度来处理:A:数据库执行语句 B...
  • 漫谈SQL Server标识列(二)

    千次阅读 2004-10-22 16:29:00
    这篇文章主要总结一下标识列在复制的处理方法1、快照复制 快照复制,通常无须考虑标识列的属性。2、事务复制 举例: 发布数据库A,订阅数据库B,出版物为T_test_A,订阅表为T_test_B CREATE TABLE T_test_A...
  • 表t_mydata 的定义如下: int id ,int station_id, datetime data_time,float LJLL 示例数据: 13911834 1 2012-08-19 8:00:00 2039886 13944831 1 2012-08-20 8:00:00 2043351 表t_station 的...
  • 假设数据列都在A列,数据从A1开始的,那对应找一个空的列, 这里我选择B列B1单元格输入公式:=IF(COUNTIF($A:$A,A1) > 1, 1, "") ...然后把B1单元格往下拉,这样B列中显示为1的就表示对应的A列有重复。
  • 漫谈SQL Server标识列

    千次阅读 2011-06-17 14:15:00
    该种具有以下三种特点: 1、的数据类型为不带小数的数值类型 2、进行插入(Insert)操作时,该的值是由系统按一定规律生成,不允许空值 3、值不重复,具有标识每一行的作用,每个表只能一个标识列。...
  • 这个简单无非查询一张表,查出接口想要的字段值,于是分分钟写出来了,但是仔细看接口需求文档时发现,接口要求的结果每个字段名都带前缀“.”。 例如: { "xx.a":"1", &...
  • 我实体user中有多个属性,其中有a属性和b属性 实体stu两个属性是引用user的这a和b属性 请问注解应该怎么写 @ManeToOne @JoinColumns({ ...这样的话user表ab列就不能出现相同组合的数据了,
  • 标识列(sql)

    2010-04-27 22:56:00
     该种具有以下三种特点: 1、的数据类型为不带小数的数值类型 2、进行插入(Insert)操作时,该的值是由系统按一定规律生成,不允许空值 3、值不重复,具有标识每一行的作用,每个表只能一个标识列...
  • 原因:因为表含有自增标识,无法直接为制定的序号做插入操作,需要更改标识 1、插入语句不规范,没有指定名称 insert into 系统角色 values(62,‘811’,‘淋涂’,null,null) 2、需要开启identity_insert标识 ...
  • 时,才能为表’Pay_TaxRate_Cur’标识列指定显式值。 遇到这个问题怎么去处理呢? 在有自增长的SQL表格里面插入指定ID的数据的时候,会禁止你操作,提示如题目,解决办法: set identity_insert Pay_TaxR...
  • distinct 多详解

    万次阅读 2016-04-08 22:09:41
    2.distinct多select distinct a,b,c from tableA;注意此时是将a,b,c三所有不同的组合全部出来,而不仅仅只是distinct a 相当于以下语句: select a,b,c from tableA group by a,b,c3.另外一
  • sql server的标识种子

    2010-12-20 08:44:57
    一、标识列的定义以及特点 SQLServer标识列又称标识符,习惯上又叫自增。...3、值不重复,具有标识每一行的作用,每个表只能一个标识列。 由于以上特点,使得标识列在数据库的设计得到广泛的...
  • 问题:从A数据库导入B数据库出现以下错误 正在验证 (错误) 消息 错误 0xc0202049: 数据流任务: 无法只读“ID”插入数据。 (SQL Server 导入和导出向导) 错误 0xc0202045: 数据流任务: 验证元数据失败。 (SQL...
  • {"当 IDENTITY_INSERT 设置为 OFF 时,不能向表 'OrderList' 标识列插入显式值"} 对于这个异常可以从两个角度来处理:A:数据库执行语句 B:直接修改NHibernate持久化类映射配置文件id节点 A数据库执行语句: 问
  • SQL 2005标识列继承问题 ...无法使用 SELECT INTO 语句将标识列添加到表 '#TMP_FB37F2DD_6103_414A_931B_6EB0D9664369',该表的 'ID' 已继承了标识属性。 这个主要我们取数据时,用到了一个分
  • 组合索引中列的顺序对执行计划的影响比较大。...兹 Index (A,B,C) ——组合索引多字段是有序的,并且是个完整的BTree 索引。 下面条件可以用该组合索引查询: A>5 A=5 AND B>6 A=5 AND B=6 AND C=7 A=5...
  • 不同于SQL Server的是,Oracle插入数据的时候,没有自增或者是标识列,但是,我们又不想显式的进行主键的插入,这里,必须Oracle数据库指定一个标识列,或者说是一个序列。具体方法如下:先创建一个序列,...
  • 错误 0xc0202049: 数据流任务 1: 无法只读“ID”插入数据。  (SQL Server 导入和导出向导)   错误 0xc0202045: 数据流任务 1: 验证元数据失败。  (SQL Server 导入和导出向导)   错误 0xc004706b:...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 269,145
精华内容 107,658
关键字:

如何在a列中有的在b列中标识