sqlserver 通过判断执行的一些语句记录

摘要:
1、判断表中是否有指定数据,如果不存在则添加(INSERTINTO):INSERTINTOTableName(Column1,Column2,Column3,Column4,Column5)SELECTValue1,Value2,Value3,Value4,Value5WHERENOTEXISTS(SELECTPrimaryNameFROMTableNameWHEREPrimaryName=Pri

1、判断表中是否有指定数据,如果不存在则添加(INSERT INTO):

INSERT INTOTableName (Column1, Column2, Column3, Column4, Column5)
SELECTValue1, Value2, Value3, Value4, Value5
WHERE NOT EXISTS (SELECT PrimaryName FROM TableName WHERE PrimaryName = PrimaryValue)

2、判断表中是否有指定列,如果不存在则添加(ALTER TABLE):

IF NOT EXISTS (SELECT TOP 1 * FROM INFORMATION_SCHEMA.COLUMNS WHERE [TABLE_NAME] = 'TableName' AND [COLUMN_NAME] = 'ColumnName')
    BEGIN 
        ALTER TABLE TableName ADD ColumnName INT NOT NULL DEFAULT 0
    END 
GO

3、如果需要在 ALTER TABLE 后需要立即执行 UPDATE 等语句

方法1:在 ALTER TABLE 语句后写 GO,但是在 BEGIN 和 END 之前就不能这么写了(据说在新版本 SQL SERVER 中可以通过多个 BEGIN 和 END 来达到 GO 的效果,但是老的版本不行)。

方法2:在 ALTER TABLE 语句后,使用 exec ('UPDATE TableName SET ColumnName = Value') 来执行 UPDATE 语句

注意:如果是因为要添加非空列初始化一个固定值的话,可以通过设置 DEFAULT 来解决,不需要单独执行,但如果要根据其它数据条件来初始化,还是需要上述方法单独执行。

4、判断存储过程是否存在,如果存在则删除(DROP PROCEDURE):

IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'ProcedureName') AND OBJECTPROPERTY(id, N'IsProcedure') = 1)
    DROP PROCEDUREProcedureName
GO

参考:https://www.cnblogs.com/li-peng/archive/2013/01/24/2874517.html

END

免责声明:文章转载自《sqlserver 通过判断执行的一些语句记录》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇调频广播六十年string.format()下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

android之View坐标系(view获取自身坐标的方法和点击事件中坐标的获取)

在制作视图背景特效时,我被各种获取坐标的方法弄糊涂了,来回复制的几篇博文也不清楚。涉及以下方法:view获取自己的坐标:getLeft()、getTop()、getRight()和getBottom()view获取自己自己的宽度和高度:getHeight(),getWidth()motionEvent获取其坐标:getX()、get Y()、Get RawX...

快速打造 react 后台管理系统

前言我相信许多小伙伴可能会满足开发后台管理系统的要求,那么我们如何快速完成这一要求?本文将记录以React为起点创建基本管理系统模板的过程,以加深对React技术堆栈和项目实践的理解。我希望开发这样的项目对每个人都有帮助。如果文章中有错误和错误,也请看小伙伴的评论。提前感谢您的项目介绍。React admin是基于R快速创建React应用脚手架而构建的...

QMap与QHash

Qt提供两个主要的关联容器类:QMap和QHash。QMap的K和T有一对方便的函数keys()和values(),它们在处理小数据集时显的特别有用。QMap重载了value,返回一个给定键多有值的QList列表。在内部,它们都依赖于QHash,且都像QHash一样对K的类型有相同的要求。...

redis make报错

所以添加参数:makeMALLOC=libc第二种类型:makeCFLAGS=“-march=x86-64”在README中有此段。...

Element UI 弹窗(Dialog)改成自适应高度,仅body内容部分滚动

定义样式如下:.abow_dialog{display:flex;justify-content:center;align-items:Center;overflow:hidden;.el-dialog{margin:0auto!important;height:90%;overflow:hidden;.el-dialog__body{position:ab...

Qt使用镜像源快速安装与更新

如果我们选择在线安装模式,那就更麻烦了,因为下载速度一般不慢。事实上,在中国,Qt图片来源很多,但很少有人使用。原因是Qt图像源做得不好。如果我们导入它,它将自动链接到官方图像源。因为它已经从官方来源同步,没有更改,所以我们无法逐个添加补丁,这太麻烦了。好吧,让我停止胡说八道。让我告诉你如何使用国产Qt图像源。...