sqlserver建立1對1的正確方法

2021-09-26 00:07:22 字數 1481 閱讀 3417

create table [dbo].[account] --帳號表

([id] [int] not null identity(1, 1),

[name] [nvarchar] (max) collate chinese_prc_ci_as null

) on [primary] textimage_on [primary]

goalter table [dbo].[account] add constraint [pk_dbo.account] primary key clustered ([id]) on [primary]

gocreate table [dbo].[accountex] --帳號資訊擴充套件表

([accountid] [int] not null,

[***] [nvarchar] (max) collate chinese_prc_ci_as null,

[age] [int] not null,

[remark] [nvarchar] (max) collate chinese_prc_ci_as null

) on [primary] textimage_on [primary]

goalter table [dbo].[accountex] add constraint [pk_dbo.accountex] primary key clustered ([accountid]) on [primary]

gocreate nonclustered index [ix_accountid] on [dbo].[accountex] ([accountid]) on [primary]

goalter table [dbo].[accountex] add constraint [fk_dbo.accountex_dbo.account_accountid] foreign key ([accountid]) references [dbo].[account] ([id])

go–插入資料

declare @curaccountid int

insert into account(name) values(『user01』)

set @curaccountid = scope_identity()

insert into accountex(accountid, ***, age, remark) values(@curaccountid, 『man』, 26, 『goodman』)

–查詢資料

select * from dbo.account

select * from dbo.accountex

account表中沒有與accountex表關聯的外來鍵

accountex表中accountid欄位首先是乙個主鍵,具有唯一性約束,這個主鍵不是自增長的,而是由account資料插入時維護,即accountid與accoutn表的id保持一致

同時它是乙個外來鍵,用於關聯到account表

**

SQLSERVER 建立ORACLE鏈結物件小結

因為該伺服器作為資料伺服器,已經建立ssis工程,其中部分dts資料來源為oracle 因此已經安裝oracle驅動。解決辦法 需要安裝64位oracle驅動 啟動sqlplus,檢視任務管理器,看到sqlplus 32程序,即可分辨該伺服器只安裝了32位oracle驅動 小結 sqlserver ...

SQL Server 行列轉換 1

參考前乙個sql的行列轉換例子 覺得不夠自由,需要去預先知道記錄的內容去定義行或列。下面這個方法,是insus.net常用一種處理方案,為資料量較少而準備。比較長,基本上寫有說明,理解起來,一般不會有多大困難。如下 view code 由於原記錄表沒有乙個唯一主鍵,只好新建乙個臨時表,把需要處理的記...

SQL Server 儲存過程(1)

什麼是儲存過程呢?那為什麼要用儲存過程呢?1.儲存過程只在創造時進行編譯,以後每次執行儲存過程都不需再重新編譯,而一般sql語句每執行一次就編譯一次,所以使用儲存過程可提高資料庫執行速度。2.當對資料庫進行複雜操作時,可將此複雜操作用儲存過程封裝起來與資料庫提供的事務處理結合一起使用。3.儲存過程可...