SqlServer表属性查询
获得表信息:
- select
- syscolumns.name as field,
- syscolumns.isnullable as nullis,
- systypes.name as sqltype,
- syscolumns.[length] as lenth,
- ISNULL(sys.identity_columns.is_identity,0) as identi,
- ISNULL(sys.extended_properties.value,'') as summary
- from sysobjects
- join syscolumns on sysobjects.id = syscolumns.id
- join systypes on syscolumns.xusertype = systypes.xusertype
- left join sys.identity_columns
- on sys.identity_columns.object_id = syscolumns.id and sys.identity_columns.column_id = syscolumns.colid
- left join sys.extended_properties on sys.extended_properties.major_id = syscolumns.id
- and sys.extended_properties.minor_id = syscolumns.colid
- where sysobjects.name = 'TableName'
判断表是否存在:
- if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[TableName]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
- select 'true'
- else
- select 'false'
- <p><strong>根据表外键名称获得主键表名称</strong></p>
- SELECT
- 外键表ID = b.fkeyid ,
- 外键表名称 = object_name (b.fkeyid) ,
- 外键列ID = b.fkey ,
- 外键列名 = ( SELECT name FROM syscolumns WHERE colid = b.fkey AND id = b.fkeyid) ,
- 主键表ID = b.rkeyid ,
- 主键表名= object_name (b.rkeyid) ,
- 主键列ID = b.rkey ,
- 主键列名 = ( SELECT name FROM syscolumns WHERE colid = b.rkey AND id = b.rkeyid) ,
- 级联更新 = ObjectProperty (a.id, ' CnstIsUpdateCascade ' ) ,
- 级联删除 = ObjectProperty (a.id, ' CnstIsDeleteCascade ' )
- FROM sysobjects a
- join sysforeignkeys b on a.id = b.constid
- join sysobjects c on a.parent_obj = c.id
- where a.xtype = 'f' AND c.xtype = 'U' and a.name = 'News'
- select
- object_name (b.fkeyid),
- 外键列名 = ( SELECT name FROM syscolumns WHERE colid = b.fkey AND id = b.fkeyid)
- from sysobjects as a join sysforeignkeys as b on a.id=b.constid
- where a.xtype='F'
判断字段是否在表中已存在
- if exists(select * from syscolumns where id=object_id('table') and name='cloumn') select 'true' else select 'false'
判断字段是否在表中已存在_Oracle
- select 1 from all_Tab_Columns where table_name = upper('studentinfo') and column_name = upper('class');
删除指定表中的所有索引
- /*
- 删除指定表的所有索引,包括主键索引,唯一索引和普通索引
- 调用:
- declare @tbName varchar(20)
- set @tbName='CP_PATHINFO'
- exec sp_dropindex @tbName
- vivianfdlpw 2005.9 引用情保留此信息
- */
- if exists(select 1 from sysobjects where id=object_id('sp_dropindex') and xtype='P')
- drop procedure sp_dropindex
- go
- create procedure sp_dropindex
- @tbName varchar(20)=null --索引名
- as
- if @tbName is null
- begin
- raiserror('必须提供@tbName参数',12,1)
- return
- end
- create table #
- (
- id int identity,
- index_name varchar(50),
- index_description varchar(1000),
- index_keys varchar(100)
- )
- insert #(index_name,index_description,index_keys)
- exec sp_helpindex @tbName
- declare @i int,@sql varchar(100)
- set @i=1
- while @i<=(select max(id) from #)
- begin
- if exists(select 1
- from sysobjects A
- join # B on A.name=B.index_name
- where B.id=@i and A.xtype in ('PK','UQ'))
- begin
- select @sql='alter table '+@tbName+' drop constraint '
- +(select index_name from # where id=@i)
- exec(@sql)
- end
- else
- begin
- select @sql='drop index '+@tbName+'.'
- +(select index_name from # where id=@i)
- exec(@sql)
- end
- set @i=@i+1
- end
- drop table #
- go
- create index IX_SACAG on CP_PATHINFO
- (
- REMIND_TODAY
- )
- declare @tbName varchar(20)
- set @tbName='CP_PATHINFO'
- exec sp_dropindex @tbName
SqlServer表属性查询的更多相关文章
- SqlServer表结构查询
一.前言 近两天项目升级数据迁移,将老版本(sqlserver)的数据迁移到新版本(mysql)数据库,需要整理一个Excel表格出来,映射两个库之间的表格字段,示例如下: Mysql数据库查询表结构 ...
- sqlserver表结构查询语句
SELECT syscolumns.name,systypes.name,syscolumns.isnullable,syscolumns.length FROM syscolumns, systyp ...
- 【SqlServer系列】表单查询
1 概述 如下几个问题,如果你能解决,请继续往下看,若不能解决,请先复习SQL基础知识,再来阅读本篇文章.本篇文章深度中等左右. Q1:表StudentScores如下,用一条SQL语句查询出每门 ...
- SQLServer 表结构相关查询(快速了解数据库)
-- 表结构查询 SELECT 表名 then d.name else '' end, 表说明 then isnull(f.value,'') else '' end, 字段序号 = a.colord ...
- MVC5+EF6简单实例---以原有SQLServer数据库两表联合查询为例
有二三年没写代码了,**内的工作就是这样,容易废人!看到园子里这么多大侠朝气蓬勃的,我想也要学点东西并和大家分享,共同进步!快乐每一天,进步每一天!言归正传! 通过最近一段时间对MVC5.EF6的学习 ...
- SqlServer字段说明查询及快速查看表结构
SqlServer字段说明查询 SELECT t.[name] AS 表名,c.[name] AS 字段名,cast(ep.[value] )) AS [字段说明] FROM sys.tables A ...
- SQLServer多表连接查询
双表内部连接查询 select wName,dName from DepartMent,Worker where DepartMent.dID=Worker.did select wName,dNam ...
- SQLServer之多表联合查询
多表联合查询简介 定义:连接查询是关系型数据库最主要的查询,通过连接运算符可以实现多个表连接数据查询. 分类:内连接,外连接,全外连接. 内连接 定义 内联接使用比较运算符根据每个表的通用列中的值匹配 ...
- SQL-Server多表关联查询并分页
一.多表关联查询 1,left join RelaTimeLog表 和 ValidFlight表关联查询 order by t.FlightId desc 2,与group by连用 group by ...
随机推荐
- html5 canvas画进度条
这个ie8的兼容是个问题,ie8 的innerHTML有问题啊,添加两个附件吧 <!DOCTYPE html> <html> <head> <meta cha ...
- for循环删除list元素陷阱
首先我们先看一段代码,如下: List<String> list=new ArrayList<String>(); list.add("123"); lis ...
- android手电筒开发
最近学习android开发,记录学习过程,分享一写小案例 一. 如下先设置好布局文件 <TextView android:id="@+id/textView1" androi ...
- 兼容IE的渐变
filter: progid:DXImageTransform.Microsoft.gradient(GradientType=, startColorstr=#1471da, endColorstr ...
- table-cell的手机应用场景
前言 最近在前端观察看见了这篇老文章,看见了元素居中的5种办法,其中提到了display:table-cell这个css显示的新属性,按照当时的浏览器市场来说想必兼容性会是糟糕的一比,但是现在这坛老酒 ...
- Flask Jinjia2 与 react
Jinjia2 这是flask使用的模板工具,利用render_template方法可以方便的将后端的数据传给前端. 但是如果要使用react呢. 我如果在jsx中直接使用{{}}是不能输出变量的. ...
- Swift—属性观察者-备
为了监听属性的变化,Swift提供了属性观察者.属性观察者能够监听存储属性的变化,即便变化前后的值相同,它们也能监听到. 属性观察者主要有以下两个: willSet:观察者在修改之前调用. didSe ...
- js限制input只能输入有效的数字,有且只有一个小数点,第一个不能为小数点-备
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 官方recovery签名验证的破解教程
下面讲如何破解官方recovery签名验证(这个方法应该是通用的,其他手机可以参考,recovery签名验证破解了,也不用费力编译第三方recovery) 1.从官方ROM里提取recovery.im ...
- Detecting an Ajax request in PHP
1:index.html <!DOCTYPE html> <html lang="en"> <head> <meta charset=&q ...