Я не эксперт, но я могу придумать одну причину для реализации Runnable вместо расширения Thread: Java поддерживает только одиночное наследование, поэтому вы можете расширять только один класс.
Редактировать: первоначально говорилось: «Реализация интерфейса требует меньше ресурсов». также, но вам нужно создать новый экземпляр Thread в любом случае, так что это было неправильно.
Вы определяете ограничение «PK_BatchStatus_ID» дважды - один раз в строке, где вы определяете поле BatchID, один раз в конце определения таблицы.
Вы можете ЛИБО определите ваше ограничение "встроенным" с помощью столбца:
CREATE TABLE [dbo].[BatchStatus]
([BatchID] [uniqueidentifier] NOT NULL
CONSTRAINT [PK_BatchStatus_ID] PRIMARY KEY,
[BatchStatus] [int] NULL
) ON [PRIMARY]
или затем вы можете определить его ПОСЛЕ всех столбцов таблицы
CREATE TABLE [dbo].[BatchStatus]
([BatchID] [uniqueidentifier] NOT NULL,
[BatchStatus] [int] NULL,
CONSTRAINT [PK_BatchStatus_ID] PRIMARY KEY CLUSTERED
(
[BatchID] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
, но вы не можете иметь оба (частично)
Марк
Попробуйте следующее:
Create TABLE [dbo].[BatchStatus](
[BatchID] [uniqueidentifier] NOT NULL,
[BatchStatus] [int] NULL,
CONSTRAINT [PK_BatchStatus_ID] PRIMARY KEY CLUSTERED
(
[BatchID] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
Может быть, это то, чего вы действительно хотели. Ограничение, определяющее значение по умолчанию
Create TABLE [dbo].[BatchStatus](
[BatchID] [uniqueidentifier] NOT NULL CONSTRAINT [DF_BatchStatus_ID] DEFAULT((0)),
[BatchStatus] [int] NULL,
CONSTRAINT [PK_BatchStatus_ID] PRIMARY KEY CLUSTERED
(
[BatchID] ASC
) WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]