Отказ от ответственности - очень начинающий SQL программист здесь; нет формального фона. Я думаю, что мне чего-то очень не хватает c - мне нужна помощь, чтобы выяснить, почему созданная мной таблица не имеет размера автоматически (длина строки), чтобы иметь возможность уместить все данные, которые я пытаюсь отправить с помощью команды UPDATE.
Фон - я создал новую базу данных "HelperTables" в SSMS (все настройки по умолчанию). Затем я создал новую таблицу с помощью мастера. Сценарий для таблицы выглядит следующим образом:
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[CollectionStatus_RecipientGroup]
(
[RecipientGroup] [VARCHAR](255) NULL,
[CollectionStatus] [VARCHAR](255) NOT NULL,
CONSTRAINT [PK_CollectionStatus_RecipientGroup]
PRIMARY KEY CLUSTERED ([CollectionStatus] 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
Я сейчас пытаюсь выполнить запрос UPDATE / SET / FROM
, чтобы обновить эту таблицу с выбором.
Код выглядит следующим образом:
UPDATE [HelperTables].[dbo].[CollectionStatus_RecipientGroup]
SET [RecipientGroup] = tableupdate.RecipientGroup,
[CollectionStatus] = tableupdate.CollectionStatus
FROM
(SELECT *
FROM
(SELECT /* query trimmed for brevity - I confirmed it works perfectly by itself*/
) results
) tableupdate
На предыдущем SQL Сервере это работало отлично. Однако это приводило к (возвращению 0 строк) команды возврата (без ошибок), пока я не вошел в мастер редактирования Top XXX Rows и не добавил несколько фиктивных данных. Когда я перезапустил запрос, был получен результат (затронуто 4 строки), где 4 - число фиктивных строк данных, которые я добавил. Данные, отправляемые запросом, представляют первые четыре строки набора результатов.
Таким образом, я пришел к выводу, что мой код в порядке, но что-то не так с настройкой таблицы или какими-то внутренними настройками. в SSMS (возможно, разрешения?).
Чего мне не хватает?