Как исправить ОГРАНИЧЕНИЯ, мешающие мне копировать схему таблицы?

У меня есть таблица, состоящая из строк для создания штрих-кодов корпуса. Мне нужна ТОЧНО такая же схема для штрих-кодов поддонов. Однако попытка просто SHOW CREATE таблицы caselabels, изменив имя и несколько имен столбцов, не работает.

Вот сценарий CREATE -

SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE TABLE [dbo].[caselabels](
    [idx] [int] IDENTITY(42,1) NOT NULL,
    [imageFile] [nvarchar](50) NULL,
    [jobId] [nvarchar](50) NULL CONSTRAINT [DF__caselabel__workO__47DBAE45]  DEFAULT (NULL),
    [triggerStatus] [nvarchar](5) NULL CONSTRAINT [DF__caselabel__trigg__48CFD27E]  DEFAULT (NULL),
    [workOrder] [nvarchar](30) NULL,
    [t_stamp] [datetime2](0) NULL CONSTRAINT [DF__caselabel__t_sta__49C3F6B7]  DEFAULT (getdate()),
    [lotCode] [nvarchar](45) NULL CONSTRAINT [DF__caselabel__lotCo__4AB81AF0]  DEFAULT (NULL),
    [expDate] [nvarchar](20) NULL CONSTRAINT [DF__caselabel__expDa__4BAC3F29]  DEFAULT (NULL),
    [qty] [int] NULL CONSTRAINT [DF__caselabels__qty__4CA06362]  DEFAULT (NULL),
    [gtinUL] [nvarchar](45) NULL CONSTRAINT [DF__caselabel__gtinU__4D94879B]  DEFAULT (NULL),
    [gtinUC] [nvarchar](45) NULL CONSTRAINT [DF__caselabel__gtinU__4E88ABD4]  DEFAULT (NULL),
    [prodNumber] [nvarchar](45) NULL CONSTRAINT [DF__caselabel__prodN__4F7CD00D]  DEFAULT (NULL),
    [prodDesc] [nvarchar](45) NULL CONSTRAINT [DF__caselabel__prodD__5070F446]  DEFAULT (NULL),
    [prodBrand] [nvarchar](45) NULL CONSTRAINT [DF__caselabel__prodB__5165187F]  DEFAULT (NULL),
    [prodSKU] [nvarchar](45) NULL CONSTRAINT [DF__caselabel__prodS__52593CB8]  DEFAULT (NULL),
    [prodSize] [nvarchar](45) NULL CONSTRAINT [DF__caselabel__prodS__5441852A]  DEFAULT (NULL),
    [dataMatrix] [nvarchar](50) NULL,
    [startingADCaseCount] [int] NULL,
    [address] [nvarchar](50) NULL,
 CONSTRAINT [PK_palletlabels_idx] PRIMARY KEY CLUSTERED 
(
    [idx] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

GO

Я просто пытаюсь изменить имя таблицы на метки поддонов, а столбец с начального ADCaseCount на начальный ADPalletCount. Обратите внимание, что я уже изменил CONSTRAINT[PL_caselabels_idx] PRIMARY KEY CLUSTERED на CONSTRAINT [PK_palletlabels_idx] PRIMARY KEY CLUSTERED

Тем не менее, я все еще получаю эти ошибки -

Msg 2714, Level 16, State 5, Line 11
There is already an object named 'DF__caselabel__workO__47DBAE45' in the database.
Msg 1750, Level 16, State 0, Line 11
Could not create constraint or index. See previous errors.
Msg 15233, Level 16, State 1, Procedure sp_addextendedproperty, Line 74
Property cannot be added. Property 'MS_SSMA_SOURCE' already exists for 'dbo.caselabels'.

Я смотрю на первое ограничение [DF_caselabel_workO-47DBAE45] под caselabels и вижу это

USE [AntiDiversion]
GO

ALTER TABLE [dbo].[caselabels] ADD  CONSTRAINT [DF__caselabel__workO__47DBAE45]  DEFAULT (NULL) FOR [jobId]
GO

что, похоже, уже совпадает с DEFAULT (NULL) в создании таблицы. Каждое ограничение строк похоже на это. Можно ли просто избавиться от разделов CONSTRAINT [DF_caselabel_....]?

Учитывая, что вторая ошибка основана на первой, я думаю, что решение этой проблемы с ограничением решит и второе сообщение об ошибке, но что насчет третьего? Я ничего не знаю об этом.

Использование SQL Server 2014.

Вам просто нужно переименовать ваши ограничения. «DF__caselabel__workO__47DBAE45» — это автоматически сгенерированное имя... либо дайте ему осмысленное, уникальное имя, либо любое уникальное имя.

Fleshy 30.05.2019 17:34

Кроме того, я не знаю какой-либо причины для Default (Null) - если вы добавляете строку в таблицу и не указываете значение для определенного поля, для этого поля устанавливается значение Null. Это, так сказать, «по умолчанию» для SQL Server.

Brian 30.05.2019 18:16
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
2
31
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Основываясь на определении вашей таблицы, вы должны удалить явные имена и просто иметь FieldName Null, FieldName2 Not Null.

Обычно я не называю свои ограничения Null/Not Null.

Да, это таблица, которую кто-то сделал, и мне нужно скопировать схему. Я тоже не был уверен, и я не был уверен, что простое переименование ограничений скопирует их или что-то в этом роде. Я не вижу необходимости называть Null-подобные константы.

bjk116 30.05.2019 17:42

И посмотрите мой комментарий к вашему исходному посту относительно Default (Null).

Brian 30.05.2019 20:30

Другие вопросы по теме