`
冷寒冰
  • 浏览: 251626 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

一段更新数据的脚本

阅读更多

把他贴出来不是因为它有多么高深,只是因为它写的足够规范,可以参考一下

 

前段代码是由于我们的开发环境的特殊性,即本地的数据库都是数据库名+test,而在dev数据库上是不带test后缀的:

 

DECLARE @maDbName SYSNAME

//DB_NAME()取得是当前的数据库名称
IF (DB_NAME() LIKE N'%Test')
BEGIN
 SET @maDbName = N'MemberArchiveTest'
END
ELSE
BEGIN
 SET @maDbName = N'MemberArchive'
END

IF (NOT EXISTS (SELECT 1 FROM sys.columns WHERE [object_id] = OBJECT_ID(N'dbo.Tr_Role', N'U')
   AND [name] = N'MembershipNumber'))
BEGIN
 ALTER TABLE dbo.Tr_Role
  ADD MembershipNumber NVARCHAR(255) NULL
END

IF (EXISTS (SELECT 1 FROM master.dbo.sysdatabases WHERE [name] = @maDbName))
BEGIN
 DECLARE @sql NVARCHAR(MAX), @isMigrationDone BIT
 SET @sql = N'
  IF (EXISTS (SELECT 1 FROM ' + @maDbName + N'.sys.columns WHERE [object_id] = OBJECT_ID(N''' + @maDbName + N'.dbo.Tm_Member'', N''U'')
     AND [name] = N''MembershipNumber''))
  BEGIN
   SET @isMigrationDone = 0
  END
  ELSE
  BEGIN
   SET @isMigrationDone = 1
  END
  '
 EXEC sp_executesql @sql, N'@isMigrationDone BIT OUTPUT', @isMigrationDone = @isMigrationDone OUTPUT
 IF (@isMigrationDone = 0)
 BEGIN
  SET @sql = N'
   UPDATE r
    SET MembershipNumber = ma.MembershipNumber
    FROM dbo.Tr_Role r
     INNER JOIN ' + @maDbName + N'.dbo.Tm_Member ma
      ON r.PersonId = ma.PersonId AND r.OrganisationId = ma.ClubId
       AND r.IsPassive = ma.IsPassive
    WHERE r.RoleTypeId = 1
   '
  EXEC sp_executesql @sql
  
  SET @sql = N'
   USE ' + @maDbName + N'
   ALTER TABLE dbo.Tm_Member DROP COLUMN MembershipNumber
   '
  EXEC sp_executesql @sql
 END
END

0
0
分享到:
评论

相关推荐

    ecps广西电商数据脚本

    标题“ecps广西电商数据脚本”提示我们这是一个与电商数据处理相关的项目,特别是针对广西地区的数据。在电商行业中,数据脚本通常用于处理、分析和管理大量的交易数据,这可能包括用户行为、订单信息、商品详情等。...

    一段天气小脚本shell

    标题中的“一段天气小脚本shell”指的是一个使用Shell编程语言编写的脚本,它的主要功能是获取并显示天气信息。Shell脚本是Linux或Unix系统中常用的自动化任务工具,它允许用户通过命令行接口执行一系列操作。 描述...

    SQLServer数据库部署工具,自动生成数据添加,更新脚本

    本文将深入探讨“SQLServer数据库部署工具”,该工具能自动生成数据添加、更新脚本,极大地方便了数据库的维护工作。 首先,我们来了解什么是数据库部署。数据库部署通常涉及创建数据库结构、设置权限、初始化数据...

    EmEditor的数字求和脚本,可以选择一段文本或多选区对数字求和,支持带逗号数字

    EmEditor自带的求和脚本不能处理带逗号的数字和空格分隔的数字,就修改了一下。 可以对一段中英文文本中的...相比Excel,这个脚本可以直接对一段文字中的数字求和,而且文本编辑器中对数字进行鼠标拖放操作更方便。

    一段进行SVN备份的脚本

    这段描述提到的“一段进行SVN备份的脚本”就是为了解决这一需求,它允许用户通过Windows计划任务自动化执行备份过程,以防止意外数据丢失。 首先,我们需要理解SVN备份的基本原理。SVN仓库通常存储在服务器上,包含...

    shell脚本生成.txt数据文件

    这段脚本会在`mydata.txt`中写入一行文本:“这是一些数据”。 如果你想生成更复杂的数据,比如序列或者随机字符,可以使用`seq`命令生成数字序列,或者使用`openssl rand`生成随机字符串: ```bash #!/bin/bash #...

    全世界的城市数据表sql脚本

    标题中的“全世界的城市数据表sql脚本”指的是一个SQL脚本文件,用于创建或操作包含全球城市信息的数据表。这样的脚本通常会包括一系列的SQL语句,如CREATE TABLE语句来定义表格结构,INSERT INTO语句来填充数据,...

    生成提取表中数据的sql脚本

    - 给定的部分内容展示了具体的T-SQL代码,这段代码定义了一个存储过程`dbo.UspOutputData`,用于生成插入数据的SQL脚本。下面对这段代码进行逐行解析: 1. **存储过程定义**: ```sql CREATE PROCEDURE dbo....

    脚本修改字段名、数据类型

    例如,给定的文件内容中有一段SQL脚本: ```sql ALTER TABLE T_OA Notice ALTER COLUMN [subject] varchar(60) not NULL; ``` 这里,`T_OA Notice`表中的`subject`字段数据类型被修改为`varchar(60)`,并且不允许为...

    MATLAB 导入CSV数据的 脚本

    这篇博客“MATLAB导入CSV数据的脚本”提供了具体的方法,通过一个名为`lq_imp.m`的MATLAB脚本来实现这一功能。下面我们将详细探讨这个过程以及相关知识点。 首先,我们需要理解CSV文件的结构。CSV文件是一种简单的...

    FR_SQL基础表数据脚本

    描述中提到的"FR_SQL基础一 和 FR_SQL基础二 的作业题的数据脚本"表明,这个压缩包可能包含了两个阶段的学习作业,涵盖了SQL的初级概念和进阶内容。这些脚本可能包含了一系列的SQL语句,旨在帮助学习者理解和实践...

    YOLO训练数据制作脚本_1

    训练过程可能需要一段时间,期间可以监控损失函数和验证集上的性能,以调整学习率和训练轮数。 总之,"YOLO训练数据制作脚本_1"是制作YOLO模型训练数据的重要工具,它简化了从原始图像和XML标注到YOLO模型所需格式...

    orcale 初学 到 精通 各种 demo 包含 练习 中使用的表 数据脚本

    本文将根据提供的资源,深入解析Oracle的学习路径,从初学到精通,并重点介绍其中包含的练习和数据脚本。 首先,"orcale12c初始安装创建用户授权.doc" 文件涵盖了Oracle 12c的安装步骤和初始设置。安装Oracle数据库...

    数据库脚本

    首先,让我们深入理解“数据脚本”这一概念。数据脚本是指包含一系列操作数据库的SQL命令的文本文件。它们可以用于创建数据库架构,填充初始数据,或者执行日常维护任务,如备份、恢复和性能优化。数据脚本的使用...

    CANoe软件CAPL文件操作脚本

    `read_csv_cfg`可能是一个用于读取CSV格式配置文件的CAPL函数或脚本,这样可以从Excel导出的CSV文件中获取数据。 3. IniAutoCodeCFG:此文件名可能暗示了一个配置文件,用于自动化的代码生成或者初始化过程。在CAPL...

    数据集,包含原始数据集、自助数据集、存储过程数据集、JSON数据集、脚本数据集、HTTP数据集、JS数据集.zip

    这个压缩包"数据集,包含原始数据集、自助数据集、存储过程数据集、JSON数据集、脚本数据集、HTTP数据集、JS数据集.zip"显然提供了多种类型的数据集,让我们一一探讨这些不同类型的数据集及其重要性。 首先,**原始...

    MOSS微调数据转换脚本

    "MOSS微调数据转换脚本"的目的是将特定的数据格式转换为适用于MOSS(可能是多模态预训练模型)进行微调的格式。在这个场景中,我们处理的是来自`chatglm`的三段式数据,它可能包含对话的输入、上下文和输出部分。...

    pb动态执行脚本

    例如,你可能有一个文本文件包含了SQL语句,可以通过读取该文件,将内容赋值给一个字符串变量,然后利用`ExecuteScript`来执行这些SQL,这样就可以实现对数据库的操作,比如构建、更新或者查询数据。这种方法在处理...

    PRO-FACE 脚本

    数据块的复制是脚本编程中的另一个重要知识点。它允许从一个地址复制数据到另一个地址。例如,当位地址M100从0变为1,即发生了上升沿变化时,数据可以从一个外接设备复制到另一个地址。这种操作通常涉及到对数据格式...

    SQL SERVER 2005+ 版本行列转换数据脚本

    ### SQL Server 2005+ 版本行列转换数据脚本知识点解析 #### 一、数据表创建脚本分析 根据题目中的信息,我们首先关注到的是一个名为`dduser`的数据表创建脚本。该脚本是在SQL Server 2005及以上版本中使用的。...

Global site tag (gtag.js) - Google Analytics