精华内容
下载资源
问答
  • sqlserver中如何判断一个约束是否存在?
    万次阅读
    2014-02-28 08:34:30
    IF  EXISTS (SELECT * FROM sys.check_constraints WHERE object_id = OBJECT_ID(N'[dbo].[CK_约束名]') AND parent_object_id = OBJECT_ID(N'[dbo].[表名]'))
    ALTER TABLE [dbo].[表名] DROP CONSTRAINT [CK_约束名]
     
     
    sqlserver中如何判断一个表是否存在?
     
     
     if exists(select * from sys.objects where object_id=object_id(N'表名'))
     drop table 表名
    
    更多相关内容
  • 一、Sql Server中如何判断表中某列是否存在 首先跟大家分享Sql Server中判断表中某列是否存在的两个方法,方法示例如下: 比如说要判断表A中的字段C是否存在两个方法:  第一种方法  IF EXISTS ( SELECT 1 ...
  • 首先认识一下 sysobjects系统表,可以查询出存在在这个...1,判断是否存在 --法1 IF EXISTS(SELECT * FROM sysobjects WHERE name = '@tableName') BEGIN PRINT '已存在' END ELSE BEGIN PRINT '不存在'

    首先认识一下

    sysobjects系统表,可以查询出存在在这个数据库里面的系统表信息和用户自己创建的表的信息

    syscolumns系统表,可以查询出存在在这个数据库里面的系统表字段数据信息和用户自己创建的表的字段信息

    相关链接:将系统表映射到系统视图

    1,判断表是否存在

    --法1
    IF EXISTS(SELECT * FROM sysobjects WHERE name = '@tableName')
    	BEGIN
    			PRINT '已存在'
    	END
    ELSE
    	BEGIN
    			PRINT '不存在'
    	END
    GO
    	
    --法2
    
    IF OBJECT_ID (N'@tableName', N'U') IS NOT NULL
      BEGIN
          PRINT '已存在'
      END
    ELSE
      BEGIN
          PRINT '不存在'
      END
    GO
    
    

    2,判断表字段是否存在

    --法1
    IF EXISTS (SELECT 1 FROM SYSOBJECTS T1 INNER JOIN SYSCOLUMNS T2 ON T1.ID=T2.ID  WHERE T1.NAME='表名' AND T2.NAME='字段名')
     BEGIN
    	   PRINT '已存在'
     END
    ELSE
      BEGIN
         PRINT '不存在'
      END
    GO
    
    --法2
    IF COL_LENGTH('表名', '字段名') IS NOT NULL
    	 BEGIN
    		 PRINT '已存在'
    	 END
    ELSE
    	BEGIN
    		 PRINT '不存在'
    	END
    GO
    
    

    3,判断表索引是否存在

    
    IF  EXISTS (SELECT 1 FROM sys.indexes WHERE object_id=OBJECT_ID('表名', N'U') and NAME='索引名')
    	 BEGIN
    		 PRINT '已存在'
    	 END
    ELSE
    	BEGIN
    		 PRINT '不存在'
    	END
    GO
    

    4,判断约束是否存在

    --这个只能以数据库的角度整体判断
    IF OBJECT_ID('约束名') IS NOT NULL 
    	 BEGIN
    		 PRINT '已存在'
    	 END
    ELSE
    	BEGIN
    		 PRINT '不存在'
    	END
    GO
    

    5,判断存储过程是否存在

    
    IF Exists(select name from sysobjects where NAME = '存储过程名' and type='P')
    	 BEGIN
    			 PRINT '已存在'
    	 END
    ELSE
    	BEGIN
    		 PRINT '不存在'
    	END
    GO
    

    6,判断表数据是否存在

    
    IF NOT EXISTS (	SELECT * FROM [tablename] a WHERE a.[id] = 'b239908d-c61f-4c0c-81ec-e33633e9e15a')
    	begin 
    		INSERT INTO [dbo].[tablename]([id],  [code], [name], [value]) 
    		VALUES ('b239908d-c61f-4c0c-81ec-e33633e9e15a', '', '', '');
    	end
    
    

    注意:

    1,更新表结构、索引;需要验证表字段、索引是否存在,脚本后面需要加go

    2,添加数据,需要验证数据是否存在

    展开全文
  • SQLServer判断对象是否存在 无 1 判断数据库是否存在Sql代码 if exists (select * from sys.databases where name = ’数据库名’) drop database [数据库名] if exists (select * from sys.databases where name = ...

    SQLServer判断对象是否存在 无 1 判断数据库是否存在Sql代码 if exists (select * from sys.databases where name = ’数据库名’) drop database [数据库名] if exists (select * from sys.databases where name = ’数据库名’) drop database [数据库名]2

    SQL Server判断对象是否存在

    1 判断数据库是否存在

    Sql代码

    if exists (select * from sys.databases where name = ’数据库名’)

    drop database [数据库名] if exists (select * from sys.databases where name = ’数据库名’)

    drop database [数据库名]

    2 判断表是否存在

    Sql代码

    if exists (select * from sysobjects where id = object_id(N’[表名]’) and OBJECTPROPERTY(id, N’IsUserTable’) = 1)

    drop table [表名] if exists (select * from sysobjects where id = object_id(N’[表名]’) and OBJECTPROPERTY(id, N’IsUserTable’) = 1)

    drop table [表名]

    3 判断存储过程是否存在

    Sql代码

    if exists (select * from sysobjects where id = object_id(N’[存储过程名]’) and OBJECTPROPERTY(id, N’IsProcedure’) = 1)

    drop procedure [存储过程名] if exists (select * from sysobjects where id = object_id(N’[存储过程名]’) and OBJECTPROPERTY(id, N’IsProcedure’) = 1)

    drop procedure [存储过程名]

    4 判断临时表是否存在

    Sql代码

    if object_id(’tempdb..#临时表名’) is not null

    drop table #临时表名 if object_id(’tempdb..#临时表名’) is not null

    drop table #临时表名

    5 判断视图是否存在

    Sql代码

    --SQL Server 2000

    IF EXISTS (SELECT * FROM sysviews WHERE object_id = ’[dbo].[视图名]’

    --SQL Server 2005

    IF EXISTS (SELECT * FROM sys.views WHERE object_id = ’[dbo].[视图名]’ --SQL Server 2000

    IF EXISTS (SELECT * FROM sysviews WHERE object_id = ’[dbo].[视图名]’

    --SQL Server 2005

    IF EXISTS (SELECT * FROM sys.views WHERE object_id = ’[dbo].[视图名]’

    6 判断函数是否存在

    Sql代码

    -- 判断要创建的函数名是否存在

    if exists (select * from dbo.sysobjects where id = object_id(N’[dbo].[函数名]’) and xtype in (N’FN’, N’IF’, N’TF’))

    drop function [dbo].[函数名] -- 判断要创建的函数名是否存在

    if exists (select * from dbo.sysobjects where id = object_id(N’[dbo].[函数名]’) and xtype in (N’FN’, N’IF’, N’TF’))

    drop function [dbo].[函数名]

    7 获取用户创建的对象信息

    Sql代码

    SELECT [name],[id],crdate FROM sysobjects where xtype=’U’

    /*

    xtype 的表示参数类型,通常包括如下这些

    C = CHECK 约束

    D = 默认值或 DEFAULT 约束

    F = FOREIGN KEY 约束

    L = 日志

    FN = 标量函数

    IF = 内嵌表函数

    P = 存储过程

    PK = PRIMARY KEY 约束(类型是 K)

    RF = 复制筛选存储过程

    S = 系统表

    TF = 表函数

    TR = 触发器

    U = 用户表

    UQ = UNIQUE 约束(类型是 K)

    V = 视图

    X = 扩展存储过程

    */ SELECT [name],[id],crdate FROM sysobjects where xtype=’U’

    /*

    xtype 的表示参数类型,通常包括如下这些

    C = CHECK 约束

    D = 默认值或 DEFAULT 约束

    F = FOREIGN KEY 约束

    L = 日志

    FN = 标量函数

    IF = 内嵌表函数

    P = 存储过程

    PK = PRIMARY KEY 约束(类型是 K)

    RF = 复制筛选存储过程

    S = 系统表

    TF = 表函数

    TR = 触发器

    U = 用户表

    UQ = UNIQUE 约束(类型是 K)

    V = 视图

    X = 扩展存储过程

    */

    8 判断列是否存在

    Sql代码

    if exists(select * from syscolumns where id=object_id(’表名’) and name=’列名’)

    alter table 表名 drop column 列名 if exists(select * from syscolumns where id=object_id(’表名’) and name=’列名’)

    alter table 表名 drop column 列名

    9 判断列是否自增列

    Sql代码

    if columnproperty(object_id(’table’),’col’,’IsIdentity’)=1

    print ’自增列’

    else

    print ’不是自增列’

    SELECT * FROM sys.columns WHERE object_id=OBJECT_ID(’表名’)

    AND is_identity=1 if columnproperty(object_id(’table’),’col’,’IsIdentity’)=1

    print ’自增列’

    else

    print ’不是自增列’

    SELECT * FROM sys.columns WHERE object_id=OBJECT_ID(’表名’)

    AND is_identity=1

    10 判断表中是否存在索引

    Sql代码

    if exists(select * from sysindexes where id=object_id(’表名’) and name=’索引名’)

    print ’存在’

    else

    print ’不存在 if exists(select * from sysindexes where id=object_id(’表名’) and name=’索引名’)

    print ’存在’

    else

    print ’不存在

    11 查看数据库中对象

    Sql代码

    SELECT * FROM sys.sysobjects WHERE name=’对象名’ SELECT * FROM sys.sysobjects WHERE name=’对象名’

    本文原创发布php中文网,转载请注明出处,感谢您的尊重!

    展开全文
  • SQL约束、索引 判断是否存在

    万次阅读 2014-01-08 15:02:45
    还原数据库后附加原有用户 exec sp_change_users_login 'UPDATE_ONE','用户名'... ... 例如: sp_change_users_login 'update_one', 'admin30', 'admin30' ...判断约束是否存在 IF EXISTS (SELECT * FROM sys.check_con

    还原数据库后附加原有用户

    exec sp_change_users_login 'UPDATE_ONE','用户名','登录名'
    将用户名映射为指定的登录名 
    例如:

    sp_change_users_login 'update_one', 'admin30', 'admin30'


    判断约束是否存在

    IF EXISTS (SELECT * FROM sys.check_constraints WHERE object_id = OBJECT_ID(N'约束名) AND parent_object_id = OBJECT_ID(N'表名'))
    ALTER TABLE 表名 ADD  CONSTRAINT 约束名  DEFAULT ((0)) FOR [State]
    GO


    判断索引是否存在,不存在则创建

    if not exists(select * from sysindexes where id=object_id('iSosDictionary') and name='IX_dictvalue') 

    CREATE UNIQUE NONCLUSTERED INDEX [IX_dictvalue] ON [iSosDictionary] 
    (
    [DictValue] ASC
    )WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
    GO
    展开全文
  • sql判断存储过程是否存在1 判断是否存在Sql代码if exists ( * from sys.databases where name = ’数据库名’)drop database [数据库名] if exists (select * from sys.databases where name = ’数据库名’)drop ...
  • 在设计数据表时,如果将某些列...在此暂不讨论,本篇文章主要讲的是,如何判断是否SQL的引用约束异常,从而能够更好的将SQL复杂的报错转换为用户能够明白的友好提示。扩展Exception,增加判断Exception是否SQL...
  • 若在程序中执行该语句则会报异常,这就需要我们在删除表前先判断该表是否存在,若存在则删除. DECLARE num NUMBER; BEGIN SELECT COUNT(1) INTO num FROM USER_TABLES WHERE TABLE_NAME = UPPER('tableName'); IF num...
  • SQL外键约束

    千次阅读 2020-07-25 14:47:23
    SQL外键约束外键约束添加外键约束删除外键约束 外键约束 一个表中的 FOREIGN KEY(外键) 指向另一个表中的 PRIMARY KEY(主键) FOREIGN KEY 约束用于预防破坏表之间连接的动作 FOREIGN KEY 约束也能防止非法数据...
  • SQL SERVER 查看约束和删除约束

    千次阅读 2021-09-26 10:24:03
    --查看约束 SELECT * FROM sysobjects WHERE OBJECT_NAME(parent_obj) = '表名' --删除约束 ALTER TABLE 表名 DROP CONSTRAINT 约束
  • if exists( SELECT   1   FROM   sys.tables t   INNER   JOIN   sys.columns c  ...存在默认值约束的处理 ...不存在默认值约束的处理 转载于:https://www.cnblogs.com/zhangq/p/9714229.html
  • 1、数据库是否存在 if exists (select * from sys.databases where name = ’数据库名’) print '存在' -- drop database [数据库名] --如果存在则删除 2、表是否存在 if exists (select * from sysobjects where ...
  • 判断数据库是不是存在  if DB_ID(N'DATABASENAME') is not null 判断表,视图,存储过程,游标的方法综合如下:  use databasename--跳转到指定数据库  go if object_id(N'a',N'U') is not null drop ...
  • sql索引及约束

    2021-06-16 15:13:35
    //ORDER BY b 都 未使用索引 查询在什么时候不走(预期中的)索引 模糊查询 %like 索引列参与计算,使用了函数 非最左前缀顺序 where对null判断 where不等于 or操作有至少一个字段没有索引 需要回表的查询结果集过大...
  •  /// 判断数据表中记录的主键值是否存在外键约束  ///  /// 主键表  /// 数据表中某条记录主键的值  ///  public bool IsExistConstraint(string strPrimaryTable,string strPrimaryValue)  
  • 判断数据库是不是存在  if DB_ID(N'DATABASENAME') is not null 判断表,视图,存储过程,游标的方法综合如下:  use databasename--跳转到指定数据库  go if object_id(N'a',N'U') is not null drop...
  • --判断要创建的表名是否存在 if exists (select * from dbo.sysobjects where id = object_id(N’ [dbo].[表名]’) and OBJECTPROPERTY(id, N’IsUserTable’) = 1) -- 删除表 drop ta...
  • 主要介绍了sql server建库、建表、建约束技巧,首先在创建数据库之前先判断数据库是否已经存在,如何存在需先删除在创建,需要的朋友可以参考下
  • 1 判断数据库是否存在Sql代码if exists (select * from sys.databases where name = ’数据库名’) drop database [数据库名] if exists (select * from sys.databases where name = ’数据库名’) drop database ...
  • 在实际工作中会遇到通过SQL查询数据库是否存在的情况,下面一些语句可以提供一些帮助,本文的语句是在SQL08R2中测试的1,查询当前数据库服务器所有数据库select * From master.dbo.sysdatabases2,查询数据库是否...
  • None, 'constrained_columns': [u'login']} UNIQUE: [{'column_names': [u'email'], 'name': None}, {'column_names': [u'login'], 'name': None}] 可以通过以下方式验证唯一约束:pk = insp.get_pk_constraint(...
  • -查看对象是否已经存在  --数据库是否存在    --if exists (select * from sys.databases where name = ’数据库名’)  --  drop database [数据库名]    if exists(select *from sys....
  • ’数据库名’)dropdatabase[数据库名] if exists (select*fromsys.databaseswherename= ’数据库名’)dropdatabase[数据库名]2 判断是否存在Sql代码if exists (select*fromsyso...
  • 1 判断数据库是否存在if exists (select * from sys.databases where name = '数据库名') drop database [数据库名] 2 判断是否存在if exists (select * from sysobjects where id = object_id(N'[表名]') and ...
  • 1 判断数据库是否存在if exists (select from sys.databases where name = '数据库名') drop database [数据库名] 2 判断是否存在if exists (select from sysobjects where id = object_id(N'[表名]') and ...
  • 数据的完整性实体完整性又称为行完整性,即数据库中的所有行都具有一个非空且没有重复的主键值MSSQL中通过唯一索引、PRIMARY KEY约束、UNIQUE约束、INDENTITY属性等来强制主键的唯一性域完整性又叫列完整性,以保证...
  • SQL 约束创建

    2018-09-26 12:08:30
    约束的创建 –constraint 约束 –主键约束:pk 唯一约束:UQ 默认约束:DF default –检查约束:CK 外键约束:FK(引用) –check 检查 1、主键约束 alter table <表名> add constraint <pk 约束...
  • SQLServer判断指定列的默认值是否存在,并修改默认值 原文:SQLServer判断指定列的默认值是否存在,并修改默认值 SQLServer判断指定列的默认值是否存在,并修改默认值 2008年10月21日 星期二 下午 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 56,095
精华内容 22,438
关键字:

判断sql的约束是否存在