惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

GbyAI
GbyAI
Martin Fowler
Martin Fowler
云风的 BLOG
云风的 BLOG
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
T
The Blog of Author Tim Ferriss
大猫的无限游戏
大猫的无限游戏
A
About on SuperTechFans
小众软件
小众软件
博客园_首页
博客园 - 聂微东
罗磊的独立博客
Recent Announcements
Recent Announcements
U
Unit 42
N
Netflix TechBlog - Medium
Blog — PlanetScale
Blog — PlanetScale
阮一峰的网络日志
阮一峰的网络日志
博客园 - 叶小钗
V
V2EX
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
IT之家
IT之家
Stack Overflow Blog
Stack Overflow Blog
博客园 - Franky
D
DataBreaches.Net
Last Week in AI
Last Week in AI

博客园 - nathan

七个经典的绩效考核工具 听说搞IT的人都会玩游戏,你有吗[投票] 简单实现Crystal Report的动态加载 lins(原作) wow 宏 - nathan - 博客园 曝光形形色色的超载 用installshield 创建sql server数据库 sql创建、附加数据库的脚本参考 清除恶意RM文件的弹出窗口广告[轉] 100多种流氓插件集合 [导入]ShootSearch (基于dotlucene的c#开源搜索引擎) [导入]ShootSearch 中文分词组件(c#开源) 无时间限制使用野外恶魔的方法 加密與解密 进程性能计数器已禁用 解決方法 C#中控制IIS服務重啟 办公室定律(转) 破解dotnetCharting.WinForms 3.4 项目管理的内容 為什麼執行Application.Exit(),會停一段時間地關掉
修改欄位屬性或是名稱
nathan · 2006-10-13 · via 博客园 - nathan

某個table內的某一個欄位的型態要如何使用語法完成呢

比方說

A1 varchar(10)  ---->  A1 varchar(20)

A2 tinyint   ----->   B2 int

第一個只改變欄位的長度或是型態

第二個改變名稱或是改變名稱與型態

做法如下:
由於您並未說明 SQL Server 的版本為何,以下說明,以 SQL Server 2005 為主

關於第一個問題,可以使用 ALTER TABLE 陳述式:


CREATE TABLE 我的資料表 (欄位A varchar(10));
GO
ALTER TABLE 我的資料表 ALTER COLUMN 欄位A nvarchar(25) NOT NULL;
GO
ALTER TABLE 我的資料表 ALTER COLUMN 欄位A varchar(50) NULL;
GO

第二個問題,若僅是更改欄位名稱,請使用 sp_rename 這個預存程序,如下所示即是一例:

EXEC sp_rename '我的資料表.欄位A', '卓立民', 'COLUMN';
GO

若要更改欄位名稱與型態,就需要分成兩道指令來進行,比方說:先使用一道指令來更改欄位名稱,然後再使用第二道指令來更改欄位型態,如下所示即是一例:

EXEC sp_rename '我的資料表.卓立民', '姓名', 'COLUMN';
ALTER TABLE 我的資料表 ALTER COLUMN 姓名 nvarchar(50) NULL;
GO

最後,要記得刪除這個資料表:

DROP TABLE 我的資料表;
GO

請注意:

  1. 當您所欲更改欄位長度或資料型別的資料表有條件約束時,SQL Server 並不會自動幫您修改這些條件約束,此時,請先移除條件約束,待更改欄位長度或資料型別之後,再建立這些條件約束,以免於執行操作時,發生錯誤訊息。
  2. 重新命名欄位的物件,不會自動重新命名與這個物件相關的參考物件名稱。您必須手動修改任何參考重新命名之物件的物件。比方說,您重新命名某一個欄位,且有觸發程序參考這個欄位,您必須修改觸發程序來反映新的欄位名稱。在重新命名欄位之前,您可以使用 sys.sql_dependencies 來列出其相依性。