SQL Server 表結構操作

2022-07-25 05:36:06 字數 2675 閱讀 5262

一、建立表

--

直接定義主外來鍵

create

table

wallet(

id varchar(36) primary

key,

money

decimal(18,2) not

null

, name

varchar(36) default'餘額

',member_id

varchar(36) foreign

keyreferences member(id) unique)--

或最後定義主外來鍵

create

table

wallets(

id varchar(36

),

money

decimal(18,2) not

null

, name

varchar(36) default'餘額

',member_id

varchar(36) unique

,

primary

key(id),

foreign

key(member_id) references

member(id),

check(money

>-1

),)

二、修改表結構1. 新增字段

--

alter table 表名 add 欄位名 資料型別

alter

table wallet add createtime date

2. 修改欄位名稱/表名稱

exec sp_rename '

表名.舊欄位名

','新字段命

3. 修改字段型別

--

alter table 表名 alter column 欄位名 資料型別

alter

table wallet alter

column

money

decimal(15,2)

4. 設定自動增長可輸入因為自動增長無法取消,除非採用重新建表再把資料同步過來的方法。所以設定該錶自動增長欄位為可以用insert的語句手動輸入

--

set identity_insert 表名 on

setidentity_insert wallet on

三、修改約束1. 新增/修改約束

--

修改表字段不能為空

alter

table wallet alter

column createtime date not

null

--新增約束表字段必須唯一

alter

table wallet add

unique

(createtime)

--新增主鍵約束

alter

table wallet add

primary

key(id)

--新增外來鍵

alter

table wallet add

foreign

key(member_id) references

member(id)

--新增自定義約束

alter

table wallet add

check(money!=0

)--新增或修改欄位的預設值

alter

table wallet add

default(getdate()) for createtime

其中check、foreign key、primary key、unique,使用constraint關鍵字為約束命名例如:

alter

table wallet addconstraint names_uniqueunique(createtime)

約束的名稱為names_unique

2. 刪除約束

--

alter table 表名 drop constraint 約束名稱

alter

table wallet drop

constraint

names_unique

--取消預設值:設定預設值null並且設定該欄位允許為null

alter

table wallet alter

column createtime date null

alter

table wallet add

default(null) for createtime

SqlServer 獲取表結構

1.獲取表的基本字段屬性 獲取sqlserver中表結構 select syscolumns.name,systypes.name,syscolumns.isnullable,syscolumns.length from syscolumns,systypes where syscolumns.xu...

SQL Server 修改表結構

檢視指定表結構exec sp help reports修改表名exec sp rename reports reports2 刪除資料表 不能刪除有外來鍵約束的表。drop table reports表字段alter table reports add newcolumn nchar 5 null ...

SqlServer匯出表結構

select 表名 case when a.colorder 1 then d.name else end,表說明 case when a.colorder 1 then isnull f.value,else end,字段序號 a.colorder,欄位名 a.name,字段說明 isnull g...