sqlserver 数据库通用更新脚本操作

  由于项目功能增加、修改必然要对数据库表、字段、存储过程、函数等修改,现在把项目中通常用到的操作总结下:

  1.给表添加字段  

   if not exists(select 1 from sysobjects a, syscolumns bwhere a.ID=b.ID and a.Name=‘表名‘ and a.xtype=‘U‘ and b.Name=‘增加字段名称‘)    

    Alter TABLE 表名 Add 增加字段名称 类型 null;

  2.表中某一个字段修改长度  

    -- 修改某一个字段nvarchar 类型为最大长度
    if exists(select b.Length from sysobjects a, syscolumns b where a.ID=b.ID and a.Name=‘表名‘ and a.xtype=‘U‘ and b.Name=‘字段名称‘ and b.Length > 0)

      alter table 表名 alter column 字段名称 nvarchar(max)
    GO
    --如果字段长度小于255,就修改字段长度为255
    if exists(select b.Length from sysobjects a, syscolumns b  where a.ID=b.ID and a.Name=‘表名‘ and a.xtype=‘U‘ and b.Name=‘字段名称‘ and b.Length < 255*2)

      alter table 表名 alter column 字段名称 nvarchar(255)
    GO

  3.修改表字段类型   

    if exists(select 1 from sysobjects a, syscolumns bwhere a.ID=b.ID and a.Name=‘表名‘ and a.xtype=‘U‘ and b.Name=‘字段名称‘)
      Alter TABLE 表名 ALTER COLUMN 字段名称 类型
    GO

  4.创建新表,如果数据库中存在新表 先删除,再创建    

    if not exists(select 1 from sysobjects where Name=‘表名‘ and xtype=‘U‘)
    BEGIN
    CREATE TABLE 表名
    (
      字段名称 类型
    )
    END
    GO

  5.创建新存储过程,先删除,后创建 

    IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N‘存储过程名称‘) AND type in (N‘P‘, N‘PC‘))
    DROP PROCEDURE [dbo].[存储过程名称]
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    CREATE PROCEDURE [dbo].[存储过程名称]
    @参数 类型 
    AS
    BEGIN

      
    END
    GO

  6.创建新函数,先删除,再创建 

    IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N‘[dbo].[函数名称]‘) AND TYPE in (N‘FN‘, N‘IF‘, N‘TF‘))
    DROP FUNCTION [dbo].[函数名称]

    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    CREATE function [dbo].[函数名称](
    @参数 类型
    )

原文地址:https://www.cnblogs.com/huashengdoujiao/p/9829339.html

时间: 2024-11-09 03:43:58

sqlserver 数据库通用更新脚本操作的相关文章

SQLServer数据库通用访问类

private static string connString=ConfigurationManager.ConnStrings["connString"].ToString(); //在app.config中configuration添加相应的数据库连接配置文件 1.格式化sql语句 //执行增删改查 public static int Update(string sql) { SqlConnection conn=new SqlConnection(connString); Sq

备份sqlserver 数据库到远程主机脚本

mssqlBackup.py: # Name: mssqlBackup.py # Purpose:  # # Author: yanglixue # # Created: 2015/04/01 #------------------------------------------------------------------------------- import pymssql import datetime import logging import traceback import os

SQLServer数据库自增长标识列的更新修改操作

SQLServer数据库自增长标识列的更新修改操作方法在日常的sql server开发中,经常会用到Identity类型的标识列作为一个表结构的自增长编号.比如文章编号.记录序号等等.自增长的标识列的引用很大程度上方便了数据库程序的开发,但是有时这个固执的字段类型也会带来一些麻烦. 一.修改标识列字段的值:(在执行insert时,将ID手动的设置成想要的值)有时,为了实现某个功能,需要修改类型为Identity自增长类型的字段的值,但由于标识的类型所限,这种操作默认是不允许的.比如,目前数据库有

PowerDesigner 如何生成数据库更新脚本

最近在学习使用PowerDesigner 这个数据库设计工具,发现真的很强大,可以做很多事情,其中就涉及到如果数据库要进行更新了怎么办,主要是增加表,最麻烦的是修改字段名称,增加字段等操作,遇到主要的情况我们应该怎么处理呢?接下来让我们一起揭开谜底吧: 首先,我们要将创建好的PDM模板先保存一份,可以命名为xxx_Old.pdm 修改你的PDM文件,修改后,进行导出物理数据库模型,然后选择工具栏上的database-->apply model changes to database出现一个界面选

Python 实现数据库更新脚本的生成

我在工作的时候,在测试环境下使用的数据库跟生产环境的数据库不一致,当我们的测试环境下的数据库完成测试准备更新到生产环境上的数据库时候,需要准备更新脚本,真是一不小心没记下来就会忘了改了哪里,哪里添加了什么,这个真是非常让人头疼.因此我就试着用Python来实现自动的生成更新脚本,以免我这烂记性,记不住事. 主要操作如下: 1.在原先 basedao.py 中添加如下方法,这样旧能很方便的获取数据库的数据,为测试数据库和生产数据库做对比打下了基础. 1 def select_database_st

VB语言使用ADO连接、操作SQLServer数据库教程

VB语言使用ADO连接.操作SQLServer数据库教程 这篇文章主要介绍了VB语言使用ADO连接.操作SQLServer数据库教程,本文讲解详细.代码中有大量注释,是非常好的一篇教程,需要的朋友可以参考下 几年前学过的VB几乎忘光了,这几天复习了下.VB连接ADO数据库并不是非常难. 连接第一步(要仔细看) 对于小白来讲,这里的教程最详细,连接ADO数据库第一步,要添加什么部件呢?全称是Microsoft ADO Data Control 6.0 (SP6) (OLEDB) 部件. 在Micr

SQLSERVER 数据库基础操作

1.修改表中字段的长度,类型为varchar,从30改到50 语句执行(注:当前为30): alter table 表名 alter column 列名 varchar(50) 2.增加字段: alter table 表名 add 字段 varchar(50) SQLSERVER 数据库基础操作,布布扣,bubuko.com

java jdbc操作SQLServer数据库

public static void main(String args[]){         System.out.println(321);         PreparedStatement ps = null;         ResultSet rs = null;         Connection ct = null;         try{             Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDri

shell脚本操作数据库

#!/bin/bash HOST_NAME="localhost" PORT=3306 USERNAME="root" PASSWORD="root" DBNAME="test" TABLENAME="tb_test" today=`date +%Y-%m-%d` #删除数据 delete_sql="delete from ${TABLENAME} where todaytime!= '${tod