SQL Server 相關SQL語句

2021-08-10 03:43:16 字數 1544 閱讀 7779

1. 新增外來鍵

alter table dbo.mytable add constraint fk_authorid foreign key (authorid) references dbo.varrily([id])

2. 刪除外來鍵

x先找出約束名字

然後刪除它

–測試環境

–主表

create table test1(id int primary key not null,value int)

insert test1 select 1,2

go –從表

create table test2(id int references test1(id),value int)

go –第一步:找出test2表上的外來鍵約束名字

–2000

exec sp_helpconstraint 『test2』

–可以在constraint_name 屬性中找到外來鍵約束名字

–2005

select name

from sys.foreign_key_columns f join sys.objects o on f.constraint_object_id=o.object_id

where f.parent_object_id=object_id(『test2』)

/*fk__test2__id__08ea5793*/

–第二步:刪除外來鍵約束

alter table test2 drop constraint fk__test2__id__08ea5793

–第三步:檢查表上是否還有外來鍵約束

–只要使用第一步裡面的查詢語句即可

3、唯一約束

唯一約束與主鍵比較相似,共同點在於它們都要求表中指定的列(或者列的組合)上有乙個唯一值,區別是唯一約束沒有被看作表中記錄的唯一識別符號(即使你可以按這樣的方式使用也有效),而且可以有多個唯一約束(而在每個表中只能有乙個主鍵)。

一旦建立了唯一約束,那麼指定列中的每個值必須是唯一的。如果更新或者插入一條記錄在帶唯一約束的列上有已經存在的值的記錄,sqlserver將丟擲錯誤,拒絕這個記錄。

和主鍵不同,唯一約束不會自動防止設定乙個null值,是否允許為null由表中相應列的null選項的設定決定,但即使確實允許null值,一張表中也只能夠插入乙個null值(如果允許多個,那就不叫唯一了)。

在已存在的表上建立唯一約束:

alter table account

add constraint ak_accountname –約束名

unique (account_name) – 列名

ak代表替換鍵(alternate key),唯一約束也叫替換鍵。

sql server裡查詢表結構命令

1) sp_help accounts_users 其中accounts_users 表示表名

2) sp_columns accounts_users

mysql和sqlserver的sql語句區別

mysql 檢視系統內所有資料庫 show databases 查詢資料庫內所有表 show tables 顯示表結構 desc 表名 sqlserver 檢視系統內所有資料庫 select name,database id,create date from sys.databases 查詢資料庫內...

MySQL和Sql Server的sql語句區別

1 自增長列的插入 sqlserver中可以不為自動增長列插入值,mysql中需要為自動增長列插入值。2 獲取當前時間函式 sqlserver寫法 getdate mysql寫法 now 3 從資料庫定位到表。sqlserver寫法 庫名.dbo.表名 或者 庫名.表名 注 中間使用兩個點 sele...

MySQL和Sql Server的sql語句區別

1 自增長列的插入 sqlserver中可以不為自動增長列插入值,mysql中需要為自動增長列插入值。2 獲取當前時間函式 sqlserver寫法 getdate mysql寫法 now 3 從資料庫定位到表。sqlserver寫法 庫名.dbo.表名 或者 庫名 表名 注 中間使用兩個點 sele...