sql判断约束存在
㈠ sql server 判断 这么判断某列是否存在 缺省约束,这么判断某列的数据类型
查找表中列是否存在缺省约束:
select * from sysobjects where name='DF_表名_列名'
删除约束
alter table 表名 drop constraint 约束名
查询表中某列类型:
select type_name(xtype) from syscolumns where id=object_id('表名') and name='列名'
㈡ 能在C#中if判断Sql表是否有主键约束呢删除时它老是报主键有约束!
这个 删除时抱错的, 一般是 外键错误.
例如
班级表 有
1班
2班
3班
学生表有
张三(1班)
李四(2班)
王五(3班)
班级表和学生表上面, 有个默认的外键.
现在你尝试删除 1班.
那么数据库报错, 原因在于
如果简单把 班级表的 1班删除了, 那么原来在 1班的张三怎么办?
处理办法有2种. ( 1种 自动, 1种手动)
1种自动的
是修改外键约束, 为 DELETE CASCADE 方式 或者 SET NULL方式
这种情况下, 你 C# 程序中, 不需要修改任何代码。
DELETE CASCADE 方式 , 就是如果你 删除 1班了, 那么数据库自动把 张三也删除了。
SET NULL方式, 就是如果你 删除 1班了, 那么数据库自动把 张三 的 “所属班级”设置为 NULL.
1种手动
是 C# 代码里面, 在删除班级以前, 先去看看 这个班级下面有没有学生, 如果有, 那么 提示一个消息框给用户 “一班下面已经存在有学生,确认要把班级与学生数据一同删除么?”
如果用户按了 确认, 那么 C# 先删除学生, 后删除班级。
㈢ SQL中用语句查看表列的约束以及解除约束
SELECT
USER_CONS_COLUMNS.CONSTRAINT_NAMEAS约束名,
USER_CONS_COLUMNS.TABLE_NAMEAS表名,
USER_CONS_COLUMNS.COLUMN_NAMEAS列名,
USER_CONS_COLUMNS.POSITIONAS位置,
CONSTRAINT_TYPE,
SEARCH_CONDITION
FROM
USER_CONSTRAINTS
JOINUSER_CONS_COLUMNS
ON(USER_CONSTRAINTS.CONSTRAINT_NAME
=USER_CONS_COLUMNS.CONSTRAINT_NAME)
WHERE
CONSTRAINT_TYPEIN('C','V','O');
其实主要就是看
USER_CONSTRAINTS与 USER_CONS_COLUMNS 这2个视图.
数据库管理员的话
可以看
DBA_CONSTRAINTS与 DBA_CONS_COLUMNS 这2个视图.
㈣ sql语句 判断表是否存在
IF EXISTS(SELECT name FROM [sysobjects] WHERE name = '表名')
PRINT '该表存在'
ELSE
PRINT '该表不存在'。
㈤ sql server怎么查询某一表的某一字段是否有约束
示例:
CREATE TABLE AA (
BB INT UNIQUE
);
SELECT
tab.name AS [表名],
idx.name AS [约束名称],
col.name AS [约束列名]
FROM
sys.indexes idx
JOIN sys.index_columns idxCol
ON (idx.object_id = idxCol.object_id
AND idx.index_id = idxCol.index_id
AND idx.is_unique_constraint = 1)
JOIN sys.tables tab
ON (idx.object_id = tab.object_id)
JOIN sys.columns col
ON (idx.object_id = col.object_id
AND idxCol.column_id = col.column_id)
WHERE
tab.name = 'AA'
结果:
表名 约束名称 约束列名
AA UQ__AA__3214B5C34460231C BB
㈥ 什么是SQL里面的约束条件
SQL 约束(Constraints)
SQL 约束用于规定表中的数据规则。
如果存在违反约束的数据行为,行为会被约束终止。
约束可以在创建表时规定(通过 CREATE TABLE 语句),或者在表创建之后规定(通过 ALTER TABLE 语句)。
本回答来自:SQL 约束(Constraints)_树懒学堂
SQL CREATE TABLE + CONSTRAINT 语法
㈦ sql server如何查询一个表中的一个列是否存在唯一约束 比如查询 AA表的 BB列
CREATE TABLE AA (
BB INT UNIQUE
);
SELECT
tab.name AS [表名],
idx.name AS [约束名称],
col.name AS [约束列名]
FROM
sys.indexes idx
JOIN sys.index_columns idxCol
ON (idx.object_id = idxCol.object_id
AND idx.index_id = idxCol.index_id
AND idx.is_unique_constraint = 1)
JOIN sys.tables tab
ON (idx.object_id = tab.object_id)
JOIN sys.columns col
ON (idx.object_id = col.object_id
AND idxCol.column_id = col.column_id)
WHERE
tab.name = 'AA'
表名 约束名称 约束列名
AA UQ__AA__3214B5C34460231C BB
㈧ SQL怎么设置带判断的唯一性约束
将AB都设置为主键:
单一个主键的内容和其他行重复是不会提示的,只有两个主键的内容都重复才会有主键重复提示
例如列a,b
已有
a,b
1,2
2,3
现在键入
a,b
1,3
是不会提示重复的
如果键入
a,b
1,2
此时才会提示重复,这样就达到目的了
㈨ 如何查看SQL表中都存在哪些约束
alt+F1就可以查看该表的表结构以及各种约束
㈩ 如何判断一个表是否建立索引约束等信息的SQL语句
--获取某表的所有索引,包括索引归属列名
sp_statistics 'Table'
--获取索引与索引归属列以及描述信息
sp_helpindex 'Table'
--获取某表的约束信息以及归属列
sp_helpconstraint 'Table'
--获取某表中的自动增长列的列名
select name from syscolumns
where id=object_id('Table') and status & 128 = 128
--获取某表中的自动增长列的列名
select name from syscolumns
where id=object_id('Table') and
COLUMNPROPERTY(id,name,'IsIdentity')=1