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].[函數名稱](
    @參數 類型
    )


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM