CAKEPHP3の参考書に従ってbakeコマンドで一連を作成しました。DBをMySQLとしたテーブルの登録画面は無事に操作することができました。
当該テーブルのid列がPrimaryキーで自動採取するタイプでしたが、MySQLだった際は無事にキーを自動採取した上でレコードが登録できていた、ということです。

app.phpをMSSQLと接続するための定義に変更して(勿論同じ構造のテーブルを用意した上で)、bakeで一連を仕上げなおしました。レコードの照会・編集・削除・一覧表示のメソッドは無事動作しますが、登録のメソッドだけ正常に行えません。

CakePHP内蔵サーバに現れていたエラー内容を確認すると、id列がemptyという状況のようでした。
標題のとおりの要因=キーの自動採取に失敗していると推察しています。
画像の説明をここに入力

この状況を打開する手立てはあるのでしょうか?仕上げられたエンティティ内の$_accessibleを編集('id'=>true から 'id'=>false )にしても状況は変わりありませんでした。

ちなみに、MSSQL上の当該テーブルに別の手続き(ManagementStudio)でレコードを登録すると、自動でidが取得されており、DBMS側の問題ではないと受けてとれます。

参考書の中で紹介されたDBMSとは異なるDBMSを選択して、参考書に従った課題の取り組みは無理がありますかね(より実践を意識したくて DBMSにMSSQLを選択しています)

public function validationDefault(Validator $validator)
    {
        $validator
            ->integer('id')
            ->requirePresence('id', 'create')
            ->notEmpty('id');

        $validator
            ->scalar('title')
            ->maxLength('title', 50)
            ->allowEmpty('title');

        $validator
            ->scalar('author')
            ->maxLength('author', 50)
            ->allowEmpty('author');

        $validator
            ->integer('price')
            ->allowEmpty('price');

        return $validator;
    }