SQLServer修改數據列

来源:https://www.cnblogs.com/vuenote/archive/2018/08/22/9514399.html
-Advertisement-
Play Games

修改數據列 在開發和生產過程中,列名的拼寫錯誤或者列名的更改是需要操作數據表的,大多數情況下都是不需要修改的. 以下幾種情況下我們並不能直接修改數據列: 1、用於索引的列。 2、用於 CHECK、FOREIGN KEY、UNIQUE 或 PRIMARY KEY 約束的列。 3、與預設值(由 DEFA ...


修改數據列

在開發和生產過程中,列名的拼寫錯誤或者列名的更改是需要操作數據表的,大多數情況下都是不需要修改的.

以下幾種情況下我們並不能直接修改數據列:

1、用於索引的列。 
2、用於 CHECK、FOREIGN KEY、UNIQUE 或 PRIMARY KEY 約束的列。 
3、與預設值(由 DEFAULT 關鍵字定義)相關聯的列,或綁定到預設對象的列。 
4、綁定到規則的列。 

使用SSMS資料庫管理工具修改列

1、連接資料庫,打開要修改的資料庫,選擇數據表-》右鍵點擊-》選擇設計。

2、在新打開的視窗視圖中-》點擊要修改的行-》可以修改列名、列類型、是否可空、屬性等-》修改完成點擊保存按鈕(或者ctrl+s)。

使用T-SQL腳本修改列

修改列名

語法:exec sp_rename  表明.舊列名,新列名; 

示例:exec sp_rename '[test1].height6','height7'; 

修改列數據類型

語法:alter table 資料庫名.dbo.表名 alter column 列名 類型 [約束];  

示例:alter table [testss].dbo.[test1] alter column height7 int null;  

修改列是否可空

語法:alter table 資料庫名.dbo.表名 alter column 列名 類型 約束;  

示例:alter table [testss].dbo.[test1] alter column height7 int not null;

修改列預設值

如果預設值不存在

語法:alter table 資料庫名.dbo.表名 add constraint 約束名 default 預設值 for 列名;

示例:alter table [testss].dbo.[test1] add constraint df_h default 1 for height7;

如果預設值存在

語法:

--第一步判斷預設值否存在,如果存在就刪除,如果不存在則不刪除
if exists (select * from sys.check_constraints where object_id = object_id(預設值約束名) and parent_object_id = object_id(表名))
alter table 表名 drop constraint 預設值約束名

--第二步添加預設值

alter table 表名 add constraint  約束名 default 預設值 for 列名;

示例:

--第一步判斷約束是否存在,如果存在就刪除,如果不存在則不刪除
if exists (select * from sys.check_constraints where object_id = object_id('df_h') AND parent_object_id = object_id('[testss].dbo.[test1]'))
alter table [testss].dbo.[test1] drop constraint df_h

--第二步添加預設值

alter table [testss].dbo.[test1] add constraint df_h default 2 for height7;

總結

在開發或者生產資料庫中,數據列一經建好,不要輕易改動,隨意改動可能會引起資料庫的級聯操作失敗和代碼錯誤。

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1、SQL中Sum()替換Count使用 SELECT COUNT(OnDutyTime) AS 本周入職 FROM dbo.EmployeeMsg WHERE DATEDIFF(WEEK,OnDutyTime,GETDATE())=0 SELECT ISNULL(SUM(1),0) AS 本周入職 ...
  • 一.SQL語言的使用1.IN 操作符 用IN寫出來的SQL的優點是比較容易寫及清晰易懂,這比較適合現代軟體開發的風格。 但是用IN的SQL性能總是比較低的,從ORACLE執行的步驟來分析用IN的SQL與不用IN的SQL有以下區別: ORACLE試圖將其轉換成多個表的連接,如果轉換不成功則先執行IN里 ...
  • 存儲過程 存儲過程是一個SQL語句集合,當主動去調用存儲過程時,其中內部的SQL語句會按照邏輯執行。 1、創建存儲過程 1 -- 創建存儲過程 2 3 delimiter // 4 create procedure p1() 5 BEGIN 6 select * from t1; 7 END// 8 ...
  • 1. ON 和WHERE 所有的查詢都回產生一個中間臨時報表,查詢結果就是從返回臨時報表中得到。ON和WHERE後面所跟限制條件的區別,主要與限制條件起作用的時機有關, ON根據限制條件對資料庫記錄進行過濾,然後生產臨時表;而WHERE是在臨時表生產之後,根據限制條件從臨時表中篩選結果。 因為以上原 ...
  • 刪除數據列 開發或者生產過程中多建、錯誤或者重覆的數據列需要進行刪除操作。 使用SSMS資料庫管理工具刪除數據列 方式一 1、打開資料庫->選擇數據表-》展開數據表-》展開數據列-》選擇要刪除的數據列-》右鍵點擊-》選擇刪除-》在彈出框中點擊確定。 方式二 1、打開資料庫-》打開數據表-》右鍵點擊- ...
  • 一個好的項目需要一個好的Makefile,分享一個萬能的模板。 ...
  • mysql按id的指定順序進行排序,以前解決過一次,後來忘了,記錄一下 SELECT * FROM `table` WHERE id<6 order by field(id,3,5,1,2,4) ...
  • Preface Today I'm gonna export some test data to another server.The source server is Windows Server 2012 R2 and the tartget server is CentOS 7.2.Event ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...