私はSQL Server 2016を使用しており、一時テーブルを作成しようとしています。ここでの定義は次のとおりです。一時テーブルの列定義にNULLを使用することはできませんか?
USE zbachoreTest
GO`enter code here`
IF EXISTS (SELECT 1 FROM sys.tables WHERE name = 'People' AND temporal_type_desc ='SYSTEM_VERSIONED_TEMPORAL_TABLE')
ALTER TABLE dbo.People SET(SYSTEM_VERSIONING = OFF)
DROP TABLE IF EXISTS dbo.People
CREATE TABLE dbo.People(
PersonID INT IDENTITY(1,1) NOT NULL CONSTRAINT PK_People PRIMARY KEY(PersonID),
FirstName VARCHAR(50) NOT NULL,
LastName VARCHAR(50) NULL,
StartTime DATETIME2 GENERATED ALWAYS AS ROW START NOT NULL
CONSTRAINT DF_People_StartTime DEFAULT SYSDATETIME(),
EndTime DATETIME2 GENERATED ALWAYS AS ROW END NOT NULL
CONSTRAINT DF_People_EndTime DEFAULT CONVERT(DATETIME2,'9999-12-31 23:59:59.9999999'),
PERIOD FOR SYSTEM_TIME(StartTime,EndTime)
) WITH (SYSTEM_VERSIONING = ON (HISTORY_TABLE = dbo.PeopleHistory))
私は上記のコードを実行すると、私は次のエラーメッセージを取得しています: メッセージ13531、レベル16、状態1、ONにSYSTEM_VERSIONING回線設定7 は列「姓」ために失敗しましたテーブル 'zbachoreTest.dbo.People'と 'zbachoreTest.dbo.PeopleHistory'に同じnull許容属性がありません。
スマートフォンがあれば助けてください。ありがとう!
ありがとうございました!あなたが説明したので、それは完璧な意味があります! – Zed