У меня есть таблица в SQL Server 2005, содержащий 10 000 054 записи; эти записи вставляются посредством объемной операции вставки. Таблица не содержит первичный ключ, и я хочу иметь тот. Если я пытаюсь изменить структуру таблицы, добавляя новый столбец, PK, набор как интервал с isidentity, консоль управления дает мне предупреждение:
"Изменения в таблицах с большими объемами данных могли занять значительное количество времени. В то время как изменения сохраняются, данные таблицы не будут доступны".
затем выходная ошибка:
"Не мог изменить таблицу. Тайм-аут истек. Период тайм-аута протек до завершения операции, или сервер не отвечает".
Я хочу PK в свою таблицу.
Как я могу добавить его?
Если в Management Studio установить первичный ключ в представлении «Дизайн» (без сохранения), при следующем щелчке правой кнопкой мыши появится параметр «Создать сценарий изменения» - этот параметр также доступен в меню «Конструктор таблиц» вверху.
Предоставляет необработанный SQL (безопасный перенос в транзакцию), который можно скопировать в буфер обмена, передать его для запуска в виде нового запроса (кнопка вверху слева или «Файл» > «Создать» > «Запрос с текущим подключением»), вставить в него, выбрать правую БД и выполнить запрос.
-121--2186217-Когда вы говорите:
#include <cstring>
компилятор g++ должен поместить объявления < string.h >
он сам включает в std::
И глобальных пространств имен. Выглядит почему-то так, будто не делает этого. Попробуйте заменить один экземпляр strcpy
на std:: strcpy
и проверьте, устраняет ли это проблему.
создать новую таблицу с точной схемой и сделать требуемый столбец первичным ключом. Теперь используется для вставки записей из одной таблицы в другую. По завершении удалите старую таблицу и переименуйте ее в нужное имя.
Если в Management Studio вы устанавливаете первичный ключ в представлении «Дизайн» (без сохранения), при следующем щелчке правой кнопкой мыши у вас появляется опция «Создать сценарий изменения» - эта опция также доступна в меню «Конструктор таблиц» вверху. .
Предоставляет необработанный SQL (безопасно завернутый в транзакцию), который вы можете скопировать в буфер обмена, использовать его для запуска в качестве нового запроса (кнопка вверху слева или «Файл»> «Создать»> «Запрос с текущим подключением»), вставьте его в , выберите нужную БД и выполните запрос.
вы можете создать таблицу с первичным ключом. при вставке данных с помощью bcp вы можете использовать файл формата для сопоставления столбцов. форматирование файла для массового копирования - хорошее решение. с этим решением вы вставляете данные с идентификационной информацией.
В этом случае я бы просто рассматривал атрибут класса так же, как и стандартный атрибут.
$("[class*=main]")
-121--897148- С помощью $ ("[class ^ = main]")
будут выбраны все элементы, для которых имя класса начинается с 'main'. Посмотрите на jQuery docs о селекторах , есть много других вариантов, которые вы можете использовать, например:
[class * = main]
выберет элементы, имя класса которых содержит 'main' [class ~ = main]
выберет элементы, у которых имя класса имеет слово 'main' (разделено пробелами) [class $ = main]
выберет элементы, имя класса которых заканчивается на 'main' Попробуйте создать сценарий SQL и выдать его из окна SQL Query.
Из вашего ответа Дэвиду я понял, что у вас нет подходящего столбца для первичного ключа. В этом случае вы можете добавить идентификатор int в качестве последнего столбца таблицы, массовая вставка продолжит работать.
Поскольку таблица загружается с помощью массовой вставки, лучшим вариантом будет усечение таблицы (усечение таблицы MYTBL); измените его, добавив идентификатор (измените таблицу TBL, добавьте идентификатор первичного ключа идентификатора int) и повторно выполните массовую загрузку.
Если вы не можете переполнить стол, вы можете использовать штамп или раствор хассана, чтобы изменить стол.