第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何向具有多列作為主鍵的SQL Server表中添加新行

如何向具有多列作為主鍵的SQL Server表中添加新行

C#
慕桂英546537 2021-03-30 17:06:28
我在SQL Server中有一個多對多關系表。表:應用表:AppCategory表:AppPerCategory主鍵[AppPerCategory]為CategoryID + AppID。在主鍵[Application]和[AppPerCategory]沒有在序列/順序。那么,如何[Application]使用C#,ASP.NET WebForms向添加新行呢?我正在構建一個小的C#ASP.NET Web表單,以允許用戶向[Application]表中添加新行。
查看完整描述

1 回答

?
互換的青春

TA貢獻1797條經(jīng)驗 獲得超6個贊

桌子的設計有點奇怪。理想情況下,ApplicationID應該是一個標識列,以便SQL Server為您自動增加它。但是,嘿,我們都處理一些無法控制的遺留系統(tǒng)。


請參見下面的SQL提琴,以了解執(zhí)行此操作的一種方法。顯然,當您擁有999個以上的應用程序時,該應用程序?qū)⒈罎?,因此您必須進行以下處理:


MS SQL Server 2017架構設置:


CREATE TABLE Application (Id varchar(3), ApplicationName varchar(max))

CREATE TABLE AppCategory (Id varchar(2), CategoryName nvarchar(max))

CREATE TABLE AppPerCategory (CategoryId varchar(2), ApplicationId varchar(3), SeqIndex int)



INSERT Application VALUES ('091', 'foo')

INSERT AppCategory VALUES ('00', 'test category')

INSERT AppPerCategory VALUES ('00', '091', 1)

查詢1:


-- Assume below two are inputs for creating new application

DECLARE @newAppName varchar(max) = 'new application'

DECLARE @category varchar(max) = 'test category'


-- Below will set newAppId to 092. Not you have to adjust for when # apps > 999

DECLARE @newAppId varchar(3) = (SELECT REPLACE(STR(CAST(MAX(Id) AS int) + 1, 3), ' ', 0) FROM Application)

DECLARE @categoryId varchar(2) = (SELECT Id from AppCategory WHERE CategoryName = @category)


DECLARE @newCategorySeqIndex int = (SELECT MAX(SeqIndex) + 1 FROM AppPerCategory WHERE CategoryId = @categoryId)


INSERT Application (Id, ApplicationName)

  VALUES (@newAppId, @newAppName)


INSERT AppPerCategory (CategoryId, ApplicationId, SeqIndex)

  VALUES (@categoryId, @newAppId, @newCategorySeqIndex)


查看完整回答
反對 回復 2021-04-10
  • 1 回答
  • 0 關注
  • 207 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號