複数の連続番号系列を作成したい シリアル番号は次のようになります。 私はその後、私はEntity Frameworkの6.1.3でこれを行うだろうどのように新しいシリアル番号Insertをselect into Entity Framework 6に翻訳
DECLARE @machine_id AS NCHAR(10)
SET @machine_id = 'M2'
INSERT INTO SerialNumber (MachineId,Snr)
SELECT @machine_id ,IIF(MAX(Snr) is not null,MAX(SNR)+1,1)
from SerialNumber
where [email protected]_id
を作成するには、このクエリを使用
M1-00000001 M2-00000001 M1-00000002 M3-00000001 M2-00000002 ...
CREATE TABLE [dbo].[SerialNumber](
[Id] [int] NOT NULL,
[MachineId] [nchar](10) NOT NULL,
[Snr] [int] NOT NULL,
CONSTRAINT [PK_SerialNumber] PRIMARY KEY CLUSTERED
(
[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF,
ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
?
EDIT:あなたがしなければならないので、私は、ORMに...あなたはそれをすると仮定しているが、それが悪いと考えられていた場合、誰かが、おそらく私に教えてくれます
これは、Max(Snr)を取得する際にMachineIdが考慮する必要はありませんか? MachineIdごとに1つのセリがあります。 – Andis59
MachineIdごとに1つのSerialNumberがあることを正しく理解していますか?もしそうなら、MAXの意味は何ですか?投稿したコードは、MachineIdに関係なく、db内のすべてのSerialNumberエントリの最大Snrを取得します。 – GDS
質問を編集しましたが、はい、シリアル番号シリーズがマシンごとに1つあり、そのシリーズの最大値を取得する必要があります。 – Andis59