Sql Server中判断表、列不存在则创建的方法
一、Sql Server中如何判断表中某列是否存在
首先跟大家分享Sql Server中判断表中某列是否存在的两个方法,方法示例如下:
比如说要判断表A中的字段C是否存在两个方法:
第一种方法
IF EXISTS ( SELECT 1 FROM SYSOBJECTS T1 INNER JOIN SYSCOLUMNS T2 ON T1.ID=T2.ID WHERE T1.NAME='A' AND T2.NAME='C' ) PRINT '存在' ELSE PRINT '不存在'
第二种方法,短小精悍,可谓精典
IF COL_LENGTH('A', 'C') IS NOT NULL PRINT N'存在' ELSE PRINT N'不存在'
方法一:
select * from syscolumns where id=object_id('表名') and name='列名'
说明:存在则返回此列的一条说明记录,不存在返回空;
方法二:
select count(*) from sysobjects a,syscolumns b where a.id=b.id and b.name='flag1' and a.type='u' and a.name='T_Pro_ProductClass'
说明:存在返回1,不存在则返回0
二、Sql Server中判断表、列是否存在,如果不存在则创建
一、表不存在则创建:
if not exists (select * from sysobjects where id = object_id('mytab') and OBJECTPROPERTY(id, 'IsUserTable') = 1) create table mytab ( id int, age int , name varchar(max), primary key (id,age) ) go
二、列不存在则创建。
if not exists (select * from syscolumns where id=object_id('mytab') and name='columnname') alter table [mytab] add columnname nvarchar(max)
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果疑问大家可以留言交流,谢谢大家对我们的支持。
相关推荐
-
sql server判断数据库、表、列、视图是否存在
1 判断数据库是否存在 if exists (select * from sys.databases where name = '数据库名') drop database [数据库名] 2 判断表是否存在 if exists (select * from sysobjects where id = object_id(N'[表名]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [表名] 3 判断存储过程是否存在 if exist
-
sql server中判断表或临时表是否存在的方法
1.判断数据表是否存在 方法一: use yourdb; go if object_id(N'tablename',N'U') is not null print '存在' else print '不存在' 例如: use fireweb; go if object_id(N'TEMP_TBL',N'U') is not null print '存在' else print '不存在' 方法二: USE [实例名] GO IF EXISTS (SELECT * FROM dbo.SysObjec
-
sqlserver 各种判断是否存在(表名、函数、存储过程等)
sql server中如何判断表或者数据库的存在,但在实际使用中,需判断Status状态位:其中某些状态位可由用户使用 sp_dboption(read only.dbo use only.single user 等)进行设置: 1 = autoclose:使用 sp_dboption 设置. 数据库完全关闭,其资源在最后一个用户注销后释放.4 = select into/bulkcopy:使用 sp_dboption 设置.允许使用 Select INTO 语句和快速大容量复制.8 = tru
-
Sql Server中判断表、列不存在则创建的方法
一.Sql Server中如何判断表中某列是否存在 首先跟大家分享Sql Server中判断表中某列是否存在的两个方法,方法示例如下: 比如说要判断表A中的字段C是否存在两个方法: 第一种方法 IF EXISTS ( SELECT 1 FROM SYSOBJECTS T1 INNER JOIN SYSCOLUMNS T2 ON T1.ID=T2.ID WHERE T1.NAME='A' AND T2.NAME='C' ) PRINT '存在' ELSE PRINT '不存在' 第二种方法,短小
-
显示 Sql Server 中所有表中的信息
显示某个Sql Server某个数据库中所有表或视图的信息 sql server 2000 与 2005 不同 差别在于 红色字部分以下语句为获取所有表信息,替换绿色黑体字"U"为"V"为获取所有视图信息. Sql Server 2000 版本 SELECT Sysobjects.name AS TABLE_NAME, syscolumns.Id, syscolumns.name AS COLUMN_NAME,systypes.name AS DATA_TYPE,
-
SQL Server中聚合历史备份信息对比数据库增长的方法
很多时候,在我们规划SQL Server数据库的空间,或向存储方面要空间时,都需要估算所需申请数据库空间的大小,估计未来最简单的办法就是看过去的趋势,这通常也是最合理的方式. 通常来讲,一个运维良好的数据库都需要做定期基线(baseline),有了基线才会知道什么是正常.一个简单的例子例如,一些人的血压平常偏低,那么80的低压对他来说就是不正常了.但现实情况是大多数系统并没有采集基线的习惯,因此在需要规划空间想要看历史增长时,就没有过去精确的数据了. 一个解决办法就是通过查看历史备份的大小来看过
-
深入理解Sql Server中的表扫描
很久以前我们在写sql的时候,最怕的一件事情就是sql莫名奇妙的超级慢,慢的是撸一管子回来,那个小球还在一直转...这个着急也只有当事人才明白,后来听说有个什么"评估执行计划",后来的后来才明白应该避免表扫描... 一:表扫描 1.现象 "表扫描"听起来很简单,不就是一行一行的扫嘛,你要说"执行计划"的话,我也会玩,为了更可观,我build一个表,再插入三行数据,如下图: 上面的Person我是一个索引都没建,然后where一下,看看表扫描是啥样
-
Sql Server中一个表2个字段关联同一个表(代码解决)
复制代码 代码如下: select a.man_id,man_name,d.sex_name,zw_name,c.money from man as a left join zw as b on a.zw_id=b.zw_id left join zw as c on a.man_id=c.man_id -- 同时关联zw字段,通过表别名区别开 left join xb as d on c.sex_id=d.sex_id
-
SQL Server中检查字段的值是否为数字的方法
最近有一个项目,需要检查某个字符型字段的值是否为数字,由于数据行是海量,所以需要通过SQL语句来筛查,这里拿来做个备忘. 用到的函数为IsNumeric,具体语句如下所示: 复制代码 代码如下: SELECT * FROM 表 WHERE IsNumeric(需要检查的字段名) = 0 ISNUMERIC 确定表达式是否为一个有效的数字类型. 语法 ISNUMERIC ( expression ) 参数 expression 要计算的
-
SQL SERVER先判断视图是否存在然后再创建视图的语句
如果我们的语句为: IF NOT EXISTS(SELECT 1 FROM sys.views WHERE name='Report_IndividualTicket') BEGIN create view Report_IndividualTicket as SELECT Ticket.TicketNumber, Ticket.TicketID, GisProcess.StageName, Content.DtReceived, Content.ContentText FROM (GisPro
-
SQL Server中使用判断语句(IF ELSE/CASE WHEN )案例
SQL Server判断语句(IF ELSE/CASE WHEN ) 执行顺序是 – 从上至下 – 从左至右 --,所当上一个条件满足时(无论下面条件是否满足),执行上个条件,当第一个条件不满足,第二个条件满足时,执行第个二条件 1.IF ELSE 不能用在SELECT中,只能是块,比如: IF - BEGIN -(代码块) END ELSE (注意这里没有ELSE IF,要实现只能在下面的块中用IF判断) BEGIN -(代码块) END 列: declare @num int --定义变量
-
Sql Server中实现行数据转为列显示
目录 1.效果如下 2.解决方案 3.代码如下 场景:行数据的某列值想作为字段列显示 1.效果如下 2.解决方案 使用pivot进行行转列,以及结合分组 3.代码如下 select * from( select DeptName,InputCode from FWD_Department group by DeptName,InputCode ) as a pivot( max(InputCode) for DeptName in([随访中心],[全院],[家庭化产房],[妇科二],妇科一) )
随机推荐
- 谈谈JSON对象和字符串之间的相互转换JSON.stringify(obj)和JSON.parse(string)
- asp.net中几种常用的身份验证方法总结
- laravel migrate初学常见错误的解决方法
- php设计模式 State (状态模式)
- Asp下实现限制IP访问的程序代码
- 用JSP/ASP创建WAP应用
- 深入理解JavaScript继承的多种方式和优缺点
- linux下apache、mysql、php安装配置详细笔记
- 多个iframe自动调整大小的问题
- java,Android:在eclipse中的快捷键(经典收藏)
- C#计算两个文件的相对目录算法的实例代码
- 基于mysql的论坛(7)
- php HandlerSocket的使用
- 模拟windows平台的上下文菜单效果代码
- mescroll.js上拉加载下拉刷新组件使用详解
- React/Redux应用使用Async/Await的方法
- JS实现图片居中悬浮效果
- vue element-ui table表格滚动加载方法
- 简单了解vue.js数组的常用操作
- 梅尔倒谱系数(MFCC)实现