Содержание

Как вставить строку в таблицу между двумя существующими строками в Sql



У меня есть таблица с 9 записями в ней, но я хочу вставить строку между 5-й и 6-й записями.

mysql
Поделиться Источник Renuka Ballal     07 февраля 2012 в 13:34

2 ответа




13

если вы настаиваете

UPDATE mytable SET id = id + 1 where id > 5 ORDER BY id ASC

insert into mytable (id,..) values (6,...) 

Поделиться Haim Evgi     07 февраля 2012 в 13:40



3

Как правило, вы не вставляете строку в определенное место таблицы.

Если строка «order» значима и имеет какую-то особую семантику, пусть данные отражают это с помощью соответствующего столбца в структуре таблицы.

Затем используйте порядок SELECT … по …, чтобы отсортировать строки.

Поделиться Marc Alff     07 февраля 2012 в 13:40


Похожие вопросы:


Как вставить новую задачу потока управления между существующими задачами в пакете SSIS?

Можно ли вставить задачу потока данных между двумя существующими задачами в пакет SSIS? У меня есть поток данных, который находится в довольно хорошей форме. Во время тестирования логики потока…


Как вставить новую строку между 2 строками в существующий лист excel

Я хочу использовать существующий HSSFWorkBook (Apache POI) и вставить новые строки между двумя существующими строками с новыми значениями. Я попробовал использовать sheet.shiftRows(n1, n2, n3) , но…


Вставить строку между двумя строками

Мы используем ASP.NET 1.1 для разработки веб-сайта, используя DataGrid control для отображения данных. Может ли какой-нибудь орган подсказать, как я могу вставить строки между двумя строками в…


Добавление столбца между двумя другими столбцами в SQL server

Можно ли добавить столбец в таблицу, вставив его между двумя существующими столбцами в SQL Server, не отбрасывая и не создавая заново таблицу?


Sql Server Management Studio 2008-вставить строку с более чем двумя строками

Я хочу вставить строку с более чем двумя строками в ячейку nvarchar(max) (щелкните правой кнопкой мыши таблицу в Sql Server Management Studio 2008 —> редактировать строки). К сожалению, в ячейку…


Как вставить разделитель строк между двумя строками в Winform c# ListView?

Можно ли программно вставить разделитель строк между двумя строками в Winform c# ListView ? Вот так например :


Insert строка между двумя существующими строками в динамически создаваемом столбце в asp.net

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


Rails AXL _ _ 27 gem. Вставить новую строку между существующими строками

Я генерирую .xlsx файлов, используя axlsx_rails gem на основе axlsx . Я получаю строки в виде массива и рисую их следующим образом: # Workbook, sheet and styles creations left… data[config].each…


Добавить вставить новую строку между двумя существующими строками в ограниченном DataGridView в C#

Я попытался добавить вставить новую пустую строку между двумя существующими строками в datagridview (уже привязанный к базе данных), но я получаю следующее исключение: Строки не могут быть…


Добавить строку между двумя строками

Помогите!! для динамической порядке убывания полях тр, используя Jquery Ajax. У меня есть такая структура таблицы <tr data-date=2015-01-30> <td class=col-lg-2>2015-01-30</td>…

2.16. Добавление записей — Transact-SQL В подлиннике : Персональный сайт Михаила Флёнова

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

Теперь давайте познакомимся с командами добавления данных в таблицу. Когда мы вначале главы заполняли таблицу данными, то вы должны были просто выполнить сценарий. Сейчас мы познакомимся с командой INSERT, которая добавляет в таблицу запись и вы сможете понять, как работал сценарий заполнения таблицы Chapter2/fill_data.sql.

Листинг 2.4. Общий вид команды INSERT


INSERT [ INTO] 
    { table_name WITH ( < table_hint_limited &qt; [ ...n ] ) 
        | view_name 
        | rowset_function_limited 
    } 

    {    [ ( column_list ) ] 
        { VALUES 
            ( { DEFAULT | NULL | expression } [ ,...n] ) 
            | derived_table 
            | execute_statement 
        } 
    }

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


INSERT INTO tbPeoples 
DEFAULT VALUES

Посмотрите, что добавил сервер в таблицу tbPeoples. Как? Нужно посмотреть последнюю строку, а этот запрос мы рассматривали в разделе 2.14. Напоминаю, как он выглядел:


SELECT * 
FROM tbPeoples 
WHERE idPeoples=
    (SELECT MAX(idPeoples) FROM tbPeoples)
В результате вы должны увидеть следующую теблицу:
idPeoples  vcFamil  vcName  vcSurname  idPosition  dDateBirthDay                                          
----------------------------------------------------------------
20         NULL     NULL    NULL       NULL        NULL

(1 row(s) affected)

В таблице tbPeoples первое поле ‘idPeoples’ является автоматически увеличиваемым, и новой строке это поле стало равным 20. Остальные поля не имеют значений по умолчанию и тут можно видеть только нулевые значения NULL.

Вернемся к запросу добавления записи и рассмотрим его подробнее. В данном запросе выполняется оператор INSERT INTO (вставить в), после которого указывается имя таблицы, в которую нужно вставить запись. Далее может идти описание имен полей, которые нужно заполнять или список значений. В нашем случае нет ни того, ни другого, зато есть DEFAULT VALUES (значения по умолчанию), который указывает на необходимость заполнить все поля значениями по умолчанию.

В таблице tbPeoples только у одного поля указывается значение по умолчанию – это автоматически увеличиваемое поле первичного ключа. Хотя мы не указывали DEFAULT значение, автоматически увеличиваемое поле обязательно получает значение, тем более что это первичный ключ, и он должен быть заполнен. Все остальные поля будут нулевыми.

Следующий запрос пытается добавить запись с явно указанными данными:


INSERT INTO tbPeoples 
VALUES(122, 'ИВАНОВ', 'ИВАН', 'СЕРГЕЕВИЧ', 1, '01.01.1971')

Первая строка ничем не отличается от предыдущего запроса. Мы снова указываем, что строка добавляется в таблицу tbPeoples. Во второй строке идет ключевое слово VALUES, после которого в скобках должны быть перечислены значения для всех полей таблицы. Перечисление значений должно быть в том же порядке, что и список полей в таблице, и при этом, указываемые значения должны иметь необходимый тип данных. Если хотя бы одно поле не будет указано или указано, но не верно (например, вместо числа будет указана строка), то запрос не будет выполнен.

В данном запросе указаны все поля и указаны в соответствии со всеми типами, но почему я сказал, что этот запрос «пытается добавить строку»? Ничего в голову не приходит? Первое поле имеет тип автоматического увеличиваемого числа. Это поле изменять нельзя, поэтому сервер вернет ошибку:

An explicit value for the identity column in table ‘tbPeoples’ can only be specified when a column list is used and IDENTITY_INSERT is ON.

Явное значение для авто увеличиваемой колонки в таблице ‘tbPeoples’ может быть указано только когда используется список колонок и свойство IDENTITY_INSERT установлено в ON.

Неужели нельзя добавить строку? Конечно же, есть способ решения этой проблемы, просто необходимо явным образом задать список колонок, которые должны изменяться и установить им нужные значения.

Список колонок указывается в скобках после имени таблицы:


INSERT INTO tbPeoples 
 (idPeoples, vcFamil, vcName, vcSurname, idPosition, dDateBirthDay) 
VALUES (122, 'ИВАНОВ', 'ИВАН', 'СЕРГЕЕВИЧ', 1, '01.01.1971')

В данном случае в скобках перечислены все поля в таком же порядке, в котором они описаны в таблице tbPeoples. Но это не является обязательным. Поля могут быть в любом порядке, но в этом случае значения в скобках после ключевого слова VALUES должны идти в том же порядке, в котором вы их перечислили. Но об этом мы еще поговорим.

Но этого не достаточно. Необходимо установить нужное свойство. Мы этого пока свойства не изменяли, но это делается с помощью оператора SET. Затем идет имя свойства (IDENTITY_INSERT), имя таблицы, свойство которой нужно изменить и напоследок – значение (чаще всего ON или OFF). В виде Transact-SQL команды это выглядит следующим образом:


SET IDENTITY_INSERT tbPeoples ON

Необходимо заметить, что изменение подобных свойств относится только к Transact-SQL и MS SQL Server.

Теперь посмотрим на полную SQL команду добавления записи с явным указанием значения для автоматически увеличиваемого значения:


SET IDENTITY_INSERT tbPeoples ON
INSERT INTO tbPeoples 
(idPeoples, vcFamil, vcName, vcSurname, 
    idPosition, dDateBirthDay) 
VALUES(122, 'ИВАНОВ', 'ИВАН', 'СЕРГЕЕВИЧ', 
    1, '01.01.1971')

После выполнения команды желательно вернуть значение параметра IDENTITY_INSERT в OFF:


SET IDENTITY_INSERT tbPeoples OFF

Вот теперь команда будет выполнена корректно и новая запись будет успешно добавлена в таблицу. Но я не рекомендую вам явно указывать значение для автоматически увеличиваемого поля. Так вы можете нарушить целостность, поэтому доверьте выделение значения для IDENTITY поля серверу баз данных.

Как добавить строку, и при этом не указывать значение ключевого поля, чтобы сервер смог его установить самостоятельно? Очень просто. Дело в том, что перечислять все поля необязательно. Можно указать только те имена полей, значения которых вы хотите явно изменить. Например, в следующем запросе мы не указываем значение для ключевого поля «idPeoples»:


INSERT INTO tbPeoples 
 (vcFamil, vcName, vcSurname, idPosition, dDateBirthDay) 
VALUES('ИВАНОВ', 'ИВАН', 'АЛЕКСЕЕВИЧ', 1, '01.01.1971')

В списке полей и в списке VALUES не указывается значение для поля «idPeoples». Да и в списке значений после ключевого слова VALUES мы указываем значения, начиная с поля «vcFamil». Вместо этого, сервер самостоятельно добавит очередное значение точно так же, как когда мы добавляли строку из всех значений по умолчанию.

Давайте добавим строку, в которой укажем только фамилию работника. Для этого, в списке полей нужно указать только имя поля «vcName», а в списке значений должно быть только одно строковое значение, ведь фамилия имеет строковый тип:


INSERT INTO tbPeoples (vcFamil) 
VALUES('ПЕТРОВ')

Если в вашей программе удобнее сделать перечисление всех полей, но при этом заполняются далеко не все значения, вместо не заполняемых значений можно указать значение NULL или DEFAULT. В следующем примере, вместо фамилии и даты рождения указано ключевое слово DEFAULT и этим полям сервер установит значение по умолчанию. Для поля фамилии указывается значение NULL:


INSERT INTO tbPeoples 
 (vcFamil, vcName, vcSurname, idPosition, dDateBirthDay) 
VALUES('СЕРГЕЕВ', DEFAULT, NULL, 1, DEFAULT)

Ключевые слова DEFAULT и NULL можно указывать для любых типов полей, кроме автоматически увеличиваемого, потому что это поле не может содержать NULL и не имеет значения по умолчанию. Автоматическое увеличение к значению по умолчанию не относиться.

В перечислении можно указывать поля в любом порядке, и только те, которые необходимы. При этом в списке VALUES значения должны идти в том же порядке, в котором вы их перечисляли. Например, в следующем примере поля фамилии, имени и отчества заполняются в обратном порядке. При этом между отчеством и именем идет поле «idPosition»:


INSERT INTO tbPeoples 
 (vcSurname, idPosition, vcName, vcFamil) 
VALUES('ПЕТРОВИЧ', 12, 'СЕРГЕЙ', 'СМИРНОВ')

В разделе 2.6 мы рассматривали, как можно использовать SELECT INTO для создания новой таблицы. Теперь давайте посмотрим, как можно импортировать данные в уже существующую таблицу, ведь SELECT INTO не может выбирать данные в таблицу, если она уже существует.

Для этого создадим новую таблицу tbPeoples2, которая будет состоять из таких же полей, как и у tbPeoples. Единственная разница, ключевое поле не будет автоматически увеличиваемым, чтобы сервер не ругался, на вставку значений в первичный ключ. Посмотрите на SQL код создания новой таблицы tbPeoples2, показан в листинге 2.5.

Листинг 2.5. Создание новой таблицы, копии tbPeoples


CREATE TABLE tbPeoples2
(
  -- Описание полей
  idPeoples2 int,
  vcFamil varchar(50),
  vcName varchar(50),
  vcSurname varchar(50),
  idPosition int, 
  dDateBirthDay datetime, 

  -- Описание ключей
  CONSTRAINT PK_idPeoples2 PRIMARY KEY (idPeoples2),
  CONSTRAINT FK_idPosition2 FOREIGN KEY (idPosition)
     REFERENCES tbPosition (idPosition), 

  -- Описание ограничений
  CONSTRAINT check_dDateBirthDay2 CHECK (dDateBirthDay<getdate())
)

Так как имена ограничений в таблице должны быть уникальными внутри базы данных, к каждому имени ограничения добавлена цифра 2. В принципе, имя таблицы тоже содержит цифру два (tbPeoples2), т.е. все соответствует тому, чему мы договорились.

Теперь посмотрим, как заполнить новую таблицу записями работников из таблицы tbPooples, и при этом взять только те записи, у которых поле «idPosition» содержит значение более или равное 10. Все достаточно просто:


INSERT INTO tbPeoples2
SELECT *
FROM tbPeoples
WHERE idPosition&qt;=10

В первой строке пишем оператор INSERT INTO и имя таблицы tbPeoples2, в которую необходимо вставить данные. Затем идет просто запрос SELECT, в котором мы получаем нужные данные из таблицы tbPeoples. Все строки, полученные с помощью этого запроса, будут добавлены в таблицу tbPeoples2.

Все так просто только потому, что обе таблицы содержат одинаковое количество полей, и типы полей совпадают. А если поля будут разными? Давайте создадим третью таблицу tbPeoples3, в которой будут только поля для хранения фамилии, имени и даты рождения.


CREATE TABLE tbPeoples3
(
  -- Описание полей
  vcFamil varchar(50),
  vcName varchar(50),
  dDateBirthDay datetime, 
)

Теперь посмотрим, как можно заполнить эту таблицу значениями:


INSERT INTO tbPeoples3
SELECT vcFamil, vcName, dDateBirthDay 
FROM tbPeoples
WHERE idPosition&qt;=10

Обратите внимание, что мы выбираем с помощью запроса SELECT только три поля и именно в таком порядке, в котором они описаны в таблице tbPeoples3. Названия полей в таблицы, и выбираемые поля могут не совпадать, но типы данных обязаны совпадать полностью, иначе выполнение запроса завершиться ошибкой. Здесь сервер не может производить автоматического преобразования, поэтому, или типы должны совпадать, или вы должны их явно преобразовывать. О явном преобразовании мы поговорим в разделе 2.21.

С помощью оператора INSERT INTO вы можете копировать данные между таблицами или даже переносить их с сервера на сервер с помощью распределенных запросов, о которых мы поговорим в разделе 5.1.

Запрос SELECT в INSERT INTO может быть любой сложности, и тут ограничений на используемые операторы нет. Другое дело, что не всегда сортировка может иметь смысл. Например, если вставлять отсортированные данные в таблицу tbPeoples, то таким образом можно повлиять только на идентификатор добавляемых строк, потому что тут автоматически увеличиваемое поле, которое генерируется последовательно. Но если бы первичный ключ был GUID полем, то сортировка потеряла бы смысл, потому что GUID поле генерируется случайным образом.

Шпаргалка по Notepad++

Мой любимый текстовой редактор. В статье будут описаны всякие такие вещи, которые стоит запомнить, при работе с ним. Сортировка чисел, клавиатурные сокращения и так далее.

Содержание

Ctrl + S – Сохранить файл.

CTRL + D – Дублирование выделенного кода.

Ctrl+F2 – Помечание строки отметкой.

F2 – Переход к следующей отмеченной строке.

Shift+F2 – Переход к предыдущей отмеченной строке.

Ctrl+J – Объединение выделенных строк в одну.

Ctrl + B – Перейти к соответствующей скобке (закрывающейся или открывающейся).

CTRL + Space – Автодополнение кода:

КодировкиПреобразовать в ... – Перекодирование файла.

КодировкиКодировать в ... – Открыть файл в другой кодировке.

Клик правой кнопки мышиПРОПИСНЫЕ – Поменять регистр букв на верхний.

Клик правой кнопки мышистрочные – Поменять регистр букв на нижний.

ПравкаПанель истории файлов – История буфера обмена (Clipboard History):

Клик правой кнопки мышиВкл./Выкл. Комментарий строки – Закомментировать код (раскомментировать аналогично).

Клик правой кнопки мышиЗакомментировать выделенное – Закомментировать код (раскомментировать автоматически нельзя).

Клик правой кнопки мышиПРОПИСНЫЕ – Поменять регистр букв на большие буквы.

Клик правой кнопки мышистрочные – Поменять регистр букв на маленькие буквы.

ВидОперации с документомПереместить в другое окно – Разделить окно на две части.

Ситаксис... – Выбор подсветки синтаксиса.

C:\Program Files (x86)\Notepad++ – в Windows 7 находятся все установленные плагины, настройки и так далее.

C:\Program Files (x86)\Notepad++\plugins – папка с плагинами.

%appdata%\Notepad++ – папка с еще файлами Notepad++..

Идем ПлагиныPlugin ManagerShow Plagin Manager.


И там выбираем нужный нам плагин. Статью, где рассматриваются плагины, можно найти тут Плагины Notepad++.

Идем TextFXTextFX Tools Sort lines case sensitive (at column) .

Но такой сортировкой не отсортируешь числа как числа – программа будет воспринимать их строками. Чтобы отсортировать числа, надо установить плагин NppColumnSort:
NppColumnSort
Для этого копируем содержимое архива в папку C:\Program Files (x86)\Notepad++\plugins.

После этого возникает в пункте меню ПлагиныNppColumnSort:

И теперь строки

будут отсортированы как:

Проверка орфографии в Notepad++ через Hunspell.

Выше уже отмечалось, что клавиши CTRL + Space вызывают окно автодополнения. Но каждый раз нажимать на низ не удобно. Было бы проще, чтобы всё возникало само. Это делается так:
ОпцииНастройкиРезерв/Автозавершение. Отметьте нужные Вам галочки:

Одной из “киллер-фич” в Sublime Text 2 считается мультивыделение. Оказывается, что оно есть и в Notepad++. Переходите в настройки программы ОпцииНастройкиПравка и ставьте галочку:

И теперь, если нажать клавишу Ctrl, то можно выделить сразу несколько текстовых блоков (Множественное выделение). При этом, если не снимать выделение, то, когда начнете писать, то текст будет вводиться во всех выделенных местах:

А при зажатом Alt можно делать вертикальное выделение:

Одной из главной “киллер-фич” в Sublime Text 2 считается миникарта справа, которую можно использовать как бегунок. Оказывается, что оно есть и в Notepad++.

Идите ВидКарта документа:

Правда она не такая удобная, как в Sublime.

Если вы работаете с каким-то проектом (сайт, программа и так далее), то Вы работаете обычно со множеством файлов в одной папке с подпапками. Лучше в этом случае работать с функцией проекта ВидПроектПанель проекта 1:

Щелкаете правой кнопкой мыши по пункту рабочая область и выбираете пункт Добавить Новый проект и как-то его называете:

Теперь правая кнопка мыши по проекту и пункт меню Добавить файлы из директории:

Теперь у нас есть дерево наших файлов, в котором удобно ориентироваться и редактировать. Причем сюда занесены не только тестовые файлы, но и все остальные. Разумеется проект можно сохранять, добавлять файлы по отдельности. В общем удобная вещь:

Еще одна важная для меня функция. Когда имеется два файла одного типа часто требуется просмотреть их синхронно. В Notepad++ все реализовано:

В Notepad++ можно выделить конкретный текст (как будто маркером провели):

ОпцииОбщиеСписок документов и там нажмите галочку на Отображать.

Смотрите в статье.

Смотрите в статье.

Смотрите в статье.

Как отобразить номер строки в редакторе запросов SQL Server Management Studio | Info-Comp.ru

Всем привет! Сегодня я расскажу о том, как включить нумерацию строк кода в среде SQL Server Management Studio, иными словами, как отобразить номер строки в редакторе SQL запросов SSMS.

Заметка! Обзор инструментов для работы с Microsoft SQL Server.

Для чего это может потребоваться

При работе с большими SQL инструкциями или хранимыми процедурами, которые содержат много строк кода, достаточно полезно и очень удобно знать номера строк в редакторе запросов. Ведь благодаря этому мы легко и, главное, быстро можем переместиться к нужному нам участку кода, например, в тех случаях когда Microsoft SQL Server выдает нам сообщение об ошибке в процессе выполнения той или иной инструкции, при этом из текста сообщения иногда бывает не понятно, где именно возникла ошибка, но кроме описания ошибки в сообщении обычно указывается еще и точное местонахождение этой ошибки, т.е. номер конкретной строки.

В этом примере ошибка возникла на строке 40.

А по умолчанию отображение номера строки в SSMS отключено, поэтому чтобы не тратить время на поиск ошибки, визуально выискивая, где же эта ошибка возникла, мы можем включить нумерацию строк кода и быстро переходить к нужному нам участку.

Пример без нумерации строк кода

С нумерацией строк кода

ЗаметкаСравнение Azure Data Studio с SQL Server Management Studio (SSMS).

Включение отображения номера строки в редакторе SQL запросов SSMS

Чтобы включить отображение номера строки в редакторе SQL запросов среды SQL Server Management Studio, необходимо зайти в меню «Сервис -> Параметры -> Текстовый редактор -> Все языки -> Общие» и поставить галочку у параметра «Номера строк». Нажать «ОК» для сохранения.

В результате в редакторе SQL запросов все строки будут пронумерованы.

Заметка! Курсы по T-SQL для начинающих.

На сегодня это все, надеюсь, материал был Вам полезен, пока!

Нравится2Не нравится

Как добавить строку в табеле эксель. Добавление столбца в Microsoft Excel

Вставка или Ctrl+V, пожалуй, самый эффективный инструмент доступный нам. Но как хорошо вы владеете им? Знаете ли вы, что есть как минимум 14 различных способов вставки данных в листах Ecxel? Удивлены? Тогда читаем этот пост, чтобы стать пэйст-мастером.

Данный пост состоит из 2 частей:

— Основные приемы вставки

— Вставка с помощью обработки данных

1. Вставить значения

Если вы хотите просто вставить значения с ячеек, последовательно нажимайте клавиши Я, М и З, удерживая при этом клавишу Alt, и в конце нажмите клавишу ввода. Это бывает необходимо, когда вам нужно избавиться от форматирования и работать только с данными.

Начиная с Excel 2010, функция вставки значений отображается во всплывающем меню при нажатии правой клавишей мыши

2. Вставить форматы

14. Какой ваш любимый способ вставки?

Есть еще много других скрытых способов вставки, таких как вставка XML-данных, изображений, объектов, файлов и т.д. Но мне интересно, какими интересными приемами вставки пользуетесь вы. Напишите, какой ваш любимый способ вставки?

С таблицами. Создавая сложные, большие таблицы, очень трудно заранее определить точное количество строчек и колонок. Поэтому может возникнуть необходимость в их добавлении уже после того, как таблица была сформирована. Многие пользователи, допустив ошибку, тратят огромное количество времени, создавая всё заново, просто потому, что не умеют правильно утилизировать встроенные инструменты Excel либо даже не знают об их существовании. В данной статье разберёмся с тем, как вставить строку или столбец в Excel между имеющихся строк или столбцов. Давайте же начнём! Поехали!

В большинстве случаев юзеры редактируют таблицу уже после ее создания

В случае, если нужно добавить столбец между двух других, откройте вкладку «Главная» и в блоке «Ячейки» на панели инструментов нажмите на кнопку «Вставить». В открывшемся меню кликните по пункту «Вставить столбцы на лист». Далее кликните правой клавишей мыши по первому заголовку колонки . В появившемся списке выберите «Вставить». Готово!

Если понадобилось добавить не одну колонку, а сразу две, то делается это аналогичным образом, только нужно будет выделить не один заголовок, а два.

Для добавления строки между двух имеющихся необходимо выделить область несмежных ячеек. Затем всё делается так, как и в предыдущем случае. Зайдите на вкладку «Главная» и нажмите кнопку «Вставка», в открывшемся списке выберите пункт «Вставить строки на лист».

Существует альтернативный способ, который заключается в выделении мышкой заголовков необходимых рядков, обозначающих диапазон. После этого воспользуйтесь вышеупомянутой функцией вставки.

Обратите внимание, что новые строки будут добавляться над отмеченными вами. Учитывайте это правило, работая с таблицей. Вместо специальных кнопок на панели инструментов Microsoft Excel вы можете эксплуатировать комбинации клавиш Ctrl, Shift, +, не забыв предварительно выделить необходимую область . Это поможет избежать лишних «кликов» и позволит несколько ускорить работу.

Чтобы удалить ненужные строчки или колонки, отметьте диапазон несмежных ячеек, а затем на вкладке «Главная» нажмите кнопку «Удалить» и выберите пункт, соответствующий либо удалению столбцов, либо удалению строк. Также вы можете воспользоваться комбинацией клавиш Ctrl+-, предварительно отметив нужную область, чтобы сэкономить время.

При работе с таблицами Excel часто возникает необходимость добавить строку или столбец уже после того, как часть данных заполнена. Если вы столкнулись с подобной проблемой, то не стоит переживать. Все решается достаточно просто и в этой статье вы сможете узнать, как это делается. Статья будет актуальна для современных версий Excel, включая Excel 2007, 2010, 2013 и 2016.

Если вам нужно добавить строку в лист Excel, то для этого нужно кликнуть правой кнопкой мышки по номеру той строки над которой нужно добавить новую строку. После этого в открывшемся меню нужно выбрать пункт «Вставить». В результате над выбранной вами строкой будет добавлена еще одна пустая строка. При этом нумерация строк сместится вниз.

Также можно просто кликнуть по любой ячейке в таблице и выбрать пункт «Вставить».

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

Нужно отметить, что если перед этим вы что-то копировали, то вместо пункта «Вставить» в контекстном меню будет доступен пункт «Вставить скопированные ячейки». Если вам нужно вставить именно пустую строку, то нужно сначала отменить предыдущее копирование с помощью нажатия на клавишу ESC на клавиатуре. Также можно воспользоваться кнопкой «Вставить» на вкладке «Главная». Для этого нужно нажать на стрелку под кнопкой «Вставить» и выбрать пункт «Вставить строки на лист».

С помощью кнопки «Вставить» можно добавить строку в любой момент, не смотря на использование функции копирования.

Как добавить новый столбец в лист Excel

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

Также можно просто кликнуть правой кнопкой мышки по любой ячейке, выбрать «Вставить», а потом, в открывшемся меню выбрать «Столбец». Либо вы можете нажать на кнопку «Вставить» на вкладке «Главная» и выбрать пункт «Вставить столбцы на лист».

Как добавить строку в таблицу Excel

Внутри листа Excel можно создавать отдельные таблицы, которые помогают управлять данными, сортировать списки и применять фильтры. Если вы хотите добавить строку в конец такой таблицы, то вы можете просто выделять последнюю ячейку в таблице и нажать на клавишу TAB на клавиатуре. В результате нажатия на клавишу TAB в таблицу будет добавлена новая строка, а выделение переместится на первую ячейку последней строки таблицы.

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

Если вам нужно добавить строки внутри таблицы, то это можно сделать так как это описано в первой части статьи. Кликаем правой кнопкой мышки по номеру строки и выбираем «Вставить».

Как добавить столбец в таблицу Excel

Столбцы добавляются в таблицу аналогичным способом. Если нужно добавить столбец в конец таблицы, то можно просто расшить таблицу на нужное количество столбцов. Для этого кликаем по нижнему правому краю таблицы и тянем его вправо.

Если нужно добавить столбец внутри таблицы, то можно использовать способ, описанный в начале статьи. Кликаем правой кнопкой мышки по столбцу и выбираем «Вставить».

В процессе заполнения таблиц в Excel может появиться необходимость внесения дополнительных данных, для чего может понадобиться добавление строк или столбцов внутри таблицы. Это, конечно же, можно сделать, просто перетащив выделенные данные на необходимое количество строк или столбцов, но если пространство вокруг таблицы заполнено, сделать это очень сложно. Решение этой проблемы довольно простое, и далее мы рассмотрим, как добавить строку в Excel, а также, как добавить столбец в Excel, причем этот способ увеличит таблицу, применив к добавленным ячейкам такие же границы, как у всей таблицы.

При добавлении строк и столбцов в Excel нужно запомнить одно правило, новые строки появляются над выделенной строкой, а новые столбцы появляются слева от выделенного столбца.

Как добавить строку в Excel?

Если в таблице Excel необходимо добавить сразу несколько строк в подряд, то нужно выделить сразу несколько строк и при этом помнить, что новые строки появятся выше последней выделенной строки по всей ширине документа. Для выделения нескольких строк достаточно выделить несколько в подряд идущих ячеек. После выделения нажимаем правой кнопкой мыши в выделенной области и выбираем «Вставить». В следующем окошке нам необходимо указать, что именно необходимо вставить. В нашем случае мы планируем в Экселе добавить строку, по этому выбираем пункт «Строку».

Выбираем \»Вставить\» для добавления строки

Есть еще один способ, который позволяет в Экселе добавить строку или несколько строк сразу после выбора пункта «Вставить» в меню при нажатии правой кнопкой мыши. Для этого необходимо выделить строку или строки полностью, кликнув по их названиям в левой части экрана.

Как добавить столбец в Excel?

При добавлении столбца в Экселе или нескольких столбцов все делаем точно так же, как при добавлении строк. Выделяем столбец или столбцы, выделив необходимое количество ячеек и в меню после нажатия правой кнопкой мыши в выделенной области выбираем «Вставить». В следующем окошке выбираем «Столбец». Новые столбцы появятся слева от последней выделенной ячейки слева.

Добавляем столбцы выбрав в меню \»Вставить\»

Также можно выделить столбцы целиком, нажимая на их названия вверху, что позволить добавить столбцы в Экселе сразу после выбора пункта «Вставить».

Как удалить строку или столбец в Excel?

Удалить строку или столбец в Excel можно по такому же принципу, как и добавление новых строк и столбцов. Выделяем необходимые столбцы или строки выделением соответствующих ячеек и в меню после нажатия правой кнопки мыши на выделенной области выбираем «Удалить», после чего появится дополнительное окошко, в котором указываем, произвести удаление столбца или строки.

Выбираем в меню \»Удалить\» для удаления столбцов или строк

Как быть если электронная таблица уже закончилась, а вам надо внести в нее дополнительные данные?

Допустим, у нас есть простая таблица с данными, давайте рассмотрим, как добавить в нее строки и столбцы.

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

Откроется диалоговое окно Добавление ячеек . Если нам надо добавить строки в таблицу, то выбираем ячейки, со сдвигом вниз или строку , и нажимаем Ok .

Над выделенным диапазоном появятся новые ячейки, к которым уже будет применен формат всей таблицы.

Если необходимо добавить столбец, алгоритм действий будет таким же, только в диалоговом окне Добавление ячеек выбираем пункт столбец. Обратите внимание, что столбики добавятся слева в количестве соответствующем количеству ячеек в выделенном диапазоне. Строки также добавляются в количестве выделенных строк.

Существует также другой способ, как продолжить таблицу в Excel. Также выбираем ячейку, над которой надо добавить строку или слева от которой надо добавить столбик. Во вкладке Главная в разделе Ячейки выбираем кнопку Вставить . Из выпадающего списка выбираем Вставить строки на лист или Вставить столбцы на лист соответственно.

Как ввести символ новой строки в SQL Server Management Studio

Сначала у меня были проблемы (не знаю почему), но, наконец, я получил следующее, чтобы работать с SSMS для SQL Server 2008.

Вставьте ALT-13, затем ALT-10 в нужное место в тексте в столбце типа varchar (символ музыки и квадрат появляются и сохраняются, когда вы покидаете строку). Изначально вы получите предупреждение (!) Слева от строки после ее выхода. Просто повторно выполните оператор SELECT. Символы и предупреждение исчезнут, но CR / LF сохранится.Вы должны включать ALT-13, если хотите, чтобы текст отображался правильно в HTML. Чтобы быстро определить, сработало ли это, скопируйте сохраненный текст из SSMS в Блокнот.

В качестве альтернативы, если вы не можете заставить это работать, вы можете сделать то же самое, начиная со столбца nvarchar. Однако символы будут сохранены как текст, поэтому вы должны преобразовать столбец в varchar, когда вы закончите преобразовывать символы в CR / LF.

Если вы хотите скопировать и вставить текст из другого источника (другая строка или таблица, HTML, Блокнот и т. Д.)) и не усекал ваш текст в первом CR, я обнаружил, что решение (Блокнот программиста), указанное по следующей ссылке, работает с SSMS для SQL Server 2008 с использованием типов столбцов varchar и nvarchar.

http://dbaspot.com/sqlserver-programming/409451-how-i-enter-linefeed-when-modifying-text-field-2.html#post1523145

Автор сообщения (dbaspot) упоминает кое-что о создании SQL-запросов — не уверен, что он имеет в виду. Просто следуйте инструкциям о Блокноте программиста, и вы можете копировать и вставлять текст в SSMS и из него и сохранять LF в обоих направлениях (используя Блокнот программиста, а не Блокнот).Для правильного отображения текста в HTML вы должны добавить CR к тексту, скопированному в SSMS. Лучший способ сделать это — выполнить оператор UPDATE с помощью функции REPLACE для добавления CR следующим образом:

  ОБНОВЛЕНИЕ имя_таблицы
УСТАНОВИТЬ имя_столбца = ЗАМЕНИТЬ (имя_столбца, СИМВОЛ (10), СИМВОЛ (13) + СИМВОЛ (10)).
  

Вставка строк в таблицы (SAP-библиотека

Вставка линий в Столы

Открытый SQL инструкция для вставки данных в таблицу базы данных:

ВСТАВИТЬ В целевые линии.

Это позволяет вставить одну или несколько строк в таблицу базы данных target . Вы можете указать таблицу базы данных target статически или динамически.

Указание базы данных Стол

Чтобы указать таблица базы данных статически введите следующее для target :

ВСТАВИТЬ В dbtab [КЛИЕНТ УКАЗАНО] линий.

где dbtab — это имя таблицы базы данных, определенной в Словарь ABAP.

Чтобы указать таблица базы данных динамически введите следующее для target :

INSERT INTO (имя) [КЛИЕНТ УКАЗАНО] линий.

где поле имя содержит имя определенной таблицы базы данных в словаре ABAP.

Вы можете использовать КЛИЕНТ УКАЗАНО дополнение для отключения автоматическая обработка клиентов.

Вставка одной строки

Чтобы вставить одиночный строку в таблицу базы данных, используйте следующее:

ВСТАВИТЬ В ЦЕЛЕВЫЕ ЗНАЧЕНИЯ ва

Содержимое рабочая область wa записываются в таблицу базы данных dbtab . Рекомендуется обозначить рабочую область с помощью ссылка на структуру таблицы базы данных.

Также можно вставить отдельные строки с использованием следующей сокращенной формы оператора INSERT :

INSERT target FROM ва

Использование FROM вместо VALUE позволяет опустить предложение INTO .Еще короче:

ВСТАВИТЬ dbtab.

В этом случае содержимое рабочей области таблицы dbtab ар вставлен в одноименную таблицу базы данных. Ты должен объявить эту рабочую область стола с помощью ТАБЛИЦЫ утверждение. В этом случае невозможно указать имя таблицы базы данных динамически. Настольная работа области с тем же именем, что и таблица базы данных (необходимо до версии 4.0) не следует больше использовать для ясности.

Вставка нескольких строк

Для вставки нескольких строк в таблицу базы данных, используйте следующее:

ВСТАВИТЬ цель ИЗ ТАБЛИЦЫ itab [ПРИНЯТИЕ ДУБЛИКАЦИОННЫХ КЛЮЧЕЙ].

Это пишет все строки внутренней таблицы itab в таблицу базы данных в одном единственном операция. Если одна или несколько строк не может быть вставлен, потому что база данных уже содержит строку с таким же первичный ключ, возникает ошибка времени выполнения. Вы можете предотвратить возникновение ошибки во время выполнения, используя дополнение ПРИНЯТИЕ ДУБЛИКАТА КЛЮЧИ .

Когда захочешь чтобы вставить более одной строки в таблицу базы данных, более эффективно работать с внутренней таблицей, а не вставлять строки одну за другой.

Примеры

Добавление сингла линии

ТАБЛИЦЫ spfli.

ТИП ДАННЫХ spfli.

wa-carrid = ‘LH’.
wa-cityfrom = «ВАШИНГТОН».

ВСТАВИТЬ В ЗНАЧЕНИЯ spfli wa.

wa-carrid = ‘UA’.
wa-cityfrom = ‘ЛОНДОН’.

ВСТАВИТЬ spfli ОТ wa.

spfli-carrid = ‘LH’.
spfli-cityfrom = ‘БЕРЛИН’.

ВСТАВИТЬ spfli.

Эта программа вставляет одну строку в таблицу базы данных SPFLI, используя каждый из трех возможные варианты оператора INSERT .

Вместо из

ВСТАВИТЬ spfli.

в последнем линии, вы также можете использовать более длинные формы

ВСТАВИТЬ spfli ИЗ spfli

или

ВСТАВИТЬ В ЗНАЧЕНИЯ spfli spfli

здесь. Таким образом, название SPFLI не уникальный.

Эти варианты дополнения INSERT работают только с рабочими областями стола, которые были заявлены с использованием ТАБЛИЦ и поэтому больше не должны использовал.

ДАННЫЕ: ТИП itab ХЕШЕНО ТАБЛИЦА SPFLI
С УНИКАЛЬНЫЙ КЛЮЧ carrid connid,
wa LIKE ЛИНИЯ ИТАБ.

wa-carrid = ‘UA’. wa-connid = ‘0011’. wa-cityfrom = …
ВСТАВИТЬ wa В ТАБЛИЦУ itab.

wa-carrid = ‘LH’. wa-connid = ‘1245’. wa-cityfrom = …
ВСТАВИТЬ wa В ТАБЛИЦУ itab.

wa-carrid = «AA». wa-connid = ‘4574’. wa-cityfrom = …
ВСТАВИТЬ wa В ТАБЛИЦУ itab.

ВСТАВИТЬ spfli ИЗ ТАБЛИЦЫ itab ПРИНЯТИЕ ДУБЛИКАЦИОННЫХ КЛЮЧЕЙ.

ЕСЛИ sy-subrc = 0.

ELSEIF sy-subrc = 4.

ENDIF.

Этот пример заполняет хеш-таблицу itab и вставляет ее содержимое в базу данных таблица SPFLI. Программа изучает содержимое sy-subrc , чтобы узнать, была ли операция успешный.

INSERT INTO — документация Databricks

Вставляет новые строки в таблицу.Вы указываете вставленные строки выражениями значений или результатом запроса.

Синтаксис

 ВСТАВИТЬ В [ТАБЛИЦУ] идентификатор_таблицы [спецификация_раздела]
    {ЗНАЧЕНИЯ ({значение | NULL} [, ...]) [, (...)] | запрос }
 

Примечание

Когда вы вставляете INSERT INTO , поддерживается соблюдение и развитие схемы дельта-таблицы. Если тип данных столбца не может быть безопасно приведен к типу данных дельта-таблицы, генерируется исключение времени выполнения. Если включена эволюция схемы, новые столбцы могут существовать в качестве последних столбцов вашей схемы (или вложенных столбцов) для развития схемы.

Вставки динамических перегородок

В part_spec значения столбца раздела являются необязательными. Когда спецификация раздела part_spec предоставлена ​​не полностью, такие вставки называются вставками динамических разделов или вставками нескольких разделов . Если значения не указаны, эти столбцы называются столбцами динамического раздела; в противном случае это столбцы статического раздела. Например, спецификация раздела (p1 = 3, p2, p3) имеет столбец статического раздела ( p1 ) и два столбца динамического раздела ( p2 и p3 ).

В part_spec ключи статических разделов должны стоять перед ключами динамических разделов. Это означает, что все столбцы раздела, имеющие постоянные значения, должны появляться перед другими столбцами раздела, которым не присвоено постоянное значение.

Значения разделов столбцов динамического раздела определяются во время выполнения. Столбцы динамического раздела должны быть указаны последними как в part_spec , так и во входном наборе результатов (списков значений строк или запроса выбора).Они решаются по должности, а не по именам. Таким образом, заказы должны быть точно согласованы.

API DataFrameWriter не имеют интерфейса для указания значений секций. Следовательно, API insertInto () всегда использует режим динамического разделения.

Важно

В режиме динамического раздела набор результатов ввода может привести к большому количеству динамических разделов и, таким образом, сгенерировать большое количество каталогов разделов.

ПЕРЕЗАПИСАТЬ

Значения для вставки.Может быть вставлено либо явно указанное значение, либо NULL. Для разделения каждого значения в предложении необходимо использовать запятую. Для вставки нескольких строк можно указать несколько наборов значений.

Семантика различается в зависимости от типа целевой таблицы:

  • Таблицы Hive SerDe: INSERT OVERWRITE не удаляет разделы заранее, а перезаписывает только те разделы, в которые во время выполнения записаны данные. Это соответствует семантике Apache Hive. Для таблиц Hive SerDe Spark SQL учитывает конфигурацию, связанную с Hive, включая куст .exec.dynamic.partition и hive.exec.dynamic.partition.mode .
  • Таблицы собственных источников данных: INSERT OVERWRITE сначала удаляет все разделы, соответствующие спецификации раздела (например, PARTITION (a = 1, b)), а затем вставляет все оставшиеся значения. Вы можете изменить поведение таблиц собственных источников данных, чтобы они соответствовали таблицам Hive SerDe, изменив конфигурацию сеанса spark.sql.sources.partitionOverwriteMode на DYNAMIC .Режим по умолчанию — STATIC .

Помощник по SQL Server


1. Как мне вставить буквальные значения или константы в таблицу или представление?

Ответ:

Чтобы вставить только буквальные значения или константы в таблицу или представление, вы будете использовать простейшая форма оператора INSERT, а именно:

 ВСТАВИТЬ В <имя_таблицы> | <имя_просмотра> [(<список_столбцов>)]
ЗНАЧЕНИЯ (<список_значений>) 

Ключевое слово VALUES определяет значения одной строки таблицы.Ценности указаны как разделенный запятыми список скалярных выражений, тип данных которых, точность и масштаб должны быть такими же или неявно преобразованными в соответствующий столбец в списке столбцов. Если список столбцов не указано, значения должны быть указаны в той же последовательности, что и столбцы в таблица или представление.

Чтобы проиллюстрировать, как использовать INSERT INTO … VALUES, учитывая таблицу клиентов:

 СОЗДАТЬ ТАБЛИЦУ [dbo].[Клиенты] (
[ID] INT NOT NULL,
[FirstName] VARCHAR (50) NOT NULL,
[LastName] VARCHAR (50) NOT NULL) 

Чтобы вставить строку в эту таблицу с использованием буквальных значений, введите следующее:

 ВСТАВИТЬ В [dbo]. [Клиенты] ([ID], [Имя], [Фамилия])
ЗНАЧЕНИЯ (1, «Билл», «Гейтс») 

Поскольку список столбцов является необязательным, вы также можете сделать следующее. Только убедитесь, что последовательность вставляемых значений соответствует последовательности столбцов в таблице.

 ВСТАВИТЬ В [dbo]. [Клиенты] ЗНАЧЕНИЯ (2, «Ларри», «Эллисон») 

Хотя список столбцов является необязательным, рекомендуется всегда предоставляется при выполнении INSERT. Это необходимо для того, чтобы ваш INSERT оператор по-прежнему будет работать, и каждый столбец получит правильное значение, даже если новые столбцы добавляются или вставляются между другими столбцами в таблице. Если в таблицу добавляется еще один столбец и выполняется та же команда INSERT без списка столбцов возникнет следующая ошибка:

Сервер
: Сообщение 213, уровень 16, состояние 5, строка 1
Ошибка вставки: имя столбца или количество предоставленных значений не соответствует определению таблицы.

2. Как мне вставить строки таблицы в другую таблицу?

Ответ:

Чтобы вставить значения в таблицу из одной или нескольких таблиц или представлений, вы будете использовать Подзапрос SELECT в операторе INSERT следующим образом:

 ВСТАВИТЬ В <имя_таблицы> | <имя_просмотра> [(<список_колонок>)]
ВЫБЕРИТЕ <список_колонок> ИЗ <имя_таблицы> |  

Использование подзапроса SELECT позволяет одновременно вставить более одной строки. Список столбцов подзапроса SELECT должен соответствовать списку столбцов в ВСТАВИТЬ оператор. Если список столбцов не указан, список выбора должен соответствуют столбцам в таблице или представлении, в которое вставляется. ВЫБОР подзапрос может ссылаться на одну или несколько таблиц или представлений с помощью объединений.

Чтобы проиллюстрировать, как использовать оператор INSERT с подзапросом SELECT, предполагая, что у вас есть 2 таблицы с именем [dbo]. [Customers] и [dbo]. [NewCustomers], и вы хотите вставить в [dbo].Таблица [Клиенты] все записи из таблицы [dbo]. [NewCustomers]:

 ВСТАВИТЬ В [dbo]. [Клиенты] ([ID], [Имя], [Фамилия])
ВЫБЕРИТЕ [ID], [Имя], [Фамилия]
ОТ [dbo]. [NewCustomers]
 

Поскольку список столбцов является необязательным, вы также можете сделать следующее. Только убедитесь, что последовательность вставляемых значений соответствует последовательности столбцов в таблице.

 ВСТАВИТЬ В [dbo]. [Клиенты]
ВЫБЕРИТЕ [ID], [Имя], [Фамилия]
ОТ [dbo].[NewCustomers] 

Хотя список столбцов является необязательным, рекомендуется всегда предоставляется при выполнении INSERT. Это необходимо для того, чтобы ваш INSERT оператор по-прежнему будет работать, и каждый столбец получит правильное значение, даже если новые столбцы добавляются или вставляются между другими столбцами в таблице. Если в таблицу добавляется еще один столбец и выполняется та же команда INSERT без списка столбцов возникнет следующая ошибка:

Сервер
: Сообщение 213, уровень 16, состояние 5, строка 1
Ошибка вставки: имя столбца или количество предоставленных значений не соответствует определению таблицы.

3. Как мне вставить в таблицу строки из другой таблицы и некоторые буквальные значения?

Ответ:

Для вставки значений в таблицу из одной или нескольких таблиц или представлений и с некоторыми буквальные значения для некоторых столбцов, вы будете использовать подзапрос SELECT в INSERT выписка:

 ВСТАВИТЬ В <имя_таблицы> |  [()] SELECT 
| <буквенное_значение> ИЗ <имя_таблицы> |  

Использование подзапроса SELECT позволяет одновременно вставить более одной строки. Список столбцов и буквальные значения подзапроса SELECT должны соответствовать список столбцов оператора INSERT. Подзапрос SELECT может ссылаться на одна или несколько таблиц или представлений с использованием объединений.

Чтобы проиллюстрировать, как использовать оператор INSERT с подзапросом SELECT, предполагая, что у вас есть 2 таблицы с именем [dbo]. [Customers] и [dbo]. [NewCustomers], и вы хотите вставить в таблицу [dbo]. [Customers] все записи из таблицы [dbo]. [NewCustomers] и установив для [StatusFlag] значение значение ‘New’, инструкция INSERT будет выглядеть следующим образом:

 ВСТАВИТЬ В [dbo].[Клиенты] ([ID], [Имя], [Фамилия], [StatusFlag])
ВЫБЕРИТЕ [ID], [Имя], [Фамилия], "Новый"
ОТ [dbo]. [NewCustomers]
 

Как вставить данные из Excel в SQL Server

Если вы хотите, чтобы ваши нетехнические пользователи могли легко обновлять данные SQL Server и управлять ими из Excel, щелкните здесь, чтобы загрузить надстройку SQL Spreads Excel.

Фон
Другие инструменты и методы
Как вставить данные из Excel в SQL Server — пошаговые инструкции
Вставить данные в таблицу SQL Server со столбцом идентификаторов
Скопировать и вставить данные из Excel в SQL Server Представления
Советы, когда копирование данных из Excel на SQL-сервер
Excel на SQL Server на удаленном компьютере
Excel на производительность SQL Server
Требования и ограничения
Резюме — вставка данных из Excel в SQL Server
Excel в SQL Server — краткий справочник

Фон

До того, как я основал SQL Spreads (надстройку Excel для использования Excel для обновления данных в SQL Server), я много лет работал консультантом по бизнес-аналитике, используя инструменты бизнес-аналитики Microsoft, такие как SQL Server, SSIS, Reporting Services, Excel. , так далее.

Я обнаружил, что, работая над разными проектами, я часто вспоминаю несколько важных вещей, которые я могу использовать снова и снова. Одна из вещей, которые я повторно использую почти в каждом проекте, — это возможность копировать и вставлять данные из Excel в таблицу в SQL Server.

Это действительно простой и удобный способ быстро вставить данные в таблицу в SQL Server — например, заполнить новую таблицу измерений, добавить некоторые тестовые данные или ввести любые другие данные, которые вам нужны, чтобы быстро поместить в таблицу в SQL Server. .

В этой статье я расскажу об основах копирования и вставки данных из Excel в SQL Server, используя простые пошаговые инструкции. Я также расскажу о нескольких особых случаях и методах, которые полезно знать.

Если вы много обновляете данные из Excel в SQL Server, или если у вас есть пользователи, которые любят Excel, но не привыкли к инструментам баз данных, обратите внимание на надстройку SQL Spreads Excel, над которой я работал. за последние несколько лет с тех пор, как я оставил свою работу консультантом по бизнес-аналитике.

Другие инструменты и методы

Перенос данных из Excel в SQL Server — постоянная задача в деловом мире, который полагается на базы данных Microsoft SQL Server. Существует ряд инструментов и методов, доступных для выполнения этой задачи, каждый с разными преимуществами и с разным уровнем сложности.

Я кратко рассмотрю несколько различных инструментов, а также их преимущества и варианты использования. Наиболее распространенные инструменты, доступные для импорта файла Excel в таблицу в SQL Server:

  • Мастер импорта SQL Server — инструмент импорта на основе мастера в среде SQL Server Management Studio.Его можно использовать для одноразового импорта, если у вас есть документ Excel с данными, которые необходимо импортировать в таблицу в SQL Server. Плюсы включают гибкость и множество настроек для точной настройки импорта. Самый большой недостаток заключается в том, что вам нужно запускать дюжину диалогов Мастера с множеством настроек каждый раз, когда вам нужно импортировать данные. Более подробную информацию о мастере импорта можно найти здесь.
  • SSIS — это нефтяной танкер для перемещения данных между разными источниками — вы можете выполнять практически любую задачу, которая вам нравится, но вам нужно будет потратить много времени, чтобы начать работу, и еще больше времени потребуется для поддержки и изменения решение по линии.К плюсам можно отнести универсальность и множество доступных функций; главный минус — это время, которое вам придется потратить на изучение инструмента. Более подробную информацию о SSIS можно найти здесь.
  • Утилита BCP — инструмент на основе командной строки, который предлагает огромное количество настроек — если вы программист, это инструмент, который нужно использовать. Более подробную информацию об утилите BCP можно найти здесь.

Это отличные инструменты для перемещения данных, особенно если у вас есть потребность импортировать данные из файла Excel в SQL Server на ежедневной или еженедельной основе.Недостатком является то, что для настройки инструментов требуется несколько шагов, а для настройки потребуется некоторое время.

Преимущество описанной ниже техники «копирования и вставки» заключается в том, что она действительно быстрая и работает сразу после установки с использованием стандартных Excel и SQL Server Management Studio. Он также может обрабатывать таблицы с идентификационными столбцами, и вы можете использовать его для нескольких тысяч строк данных с разумным временем загрузки.

Как вставить данные из Excel в SQL Server — пошаговые инструкции

  1. Откройте SQL Server Management Studio и подключитесь к своей базе данных SQL Server.
  2. Разверните папки Databases и Tables для таблицы, в которую вы хотите вставить данные из Excel.
  3. Щелкните таблицу правой кнопкой мыши и выберите четвертый вариант — Изменить первые 200 строк .
  4. Данные будут загружены, и вы увидите первые 200 строк данных в таблице.
  5. Переключитесь в Excel и выберите строки и столбцы для вставки из Excel в SQL Server.
    Щелкните выделенные ячейки правой кнопкой мыши и выберите Копировать .
  6. Вернитесь в SQL Server Management Studio, прокрутите вниз до последней строки внизу и найдите строку со звездочкой в крайнем левом столбце.
  7. Щелкните правой кнопкой мыши звездочку в заголовке столбца и выберите Вставить .
  8. Ваши данные из Excel теперь вставлены в вашу таблицу в SQL Server!

Помните : Всегда начинайте с копирования и вставки одной строки данных из Excel в SQL Server. Это необходимо для проверки того, что между вашими данными из Excel и таблицы SQL Server нет несоответствий (например, количество столбцов) и что ваши данные в Excel соответствуют типам данных в таблице SQL Server.См. Раздел «Советы и хитрости» ниже для получения более подробной информации.

Как вставить данные из Excel в таблицу SQL Server со столбцом идентификаторов

Тот же метод можно использовать для копирования и вставки данных в таблицы, которые имеют автоматически увеличивающийся столбец идентификатора (столбец идентификатора) .

Здесь следует иметь в виду, что при копировании данных из Excel в SQL Server необходимо также включить в Excel крайний левый пустой столбец.

Выполните следующие действия, чтобы скопировать и вставить данные из Excel в SQL Server, используя таблицу с автоматически увеличивающимся столбцом идентификатора:

  1. Откройте SQL Server Management Studio и подключитесь к своей базе данных SQL Server.
  2. Разверните папки Databases и Tables для таблицы, в которую вы хотите вставить данные Excel.
  3. Щелкните правой кнопкой мыши имя таблицы и выберите Edit Top 200 Rows , четвертый вариант сверху.
  4. Появится сетка с первыми 200 строками данных в таблице.
  5. Переключитесь в Excel и выберите строки и столбцы для копирования. Не включайте строку заголовка.
    Теперь, также не забудьте включить дополнительный пустой крайний левый столбец в ваш выбор .

    Затем щелкните правой кнопкой мыши выбранные ячейки и выберите Копировать .
  6. Вернитесь в SQL Server Management Studio и выберите вкладку с 200 строками из таблицы.
    Перейдите к последней строке внизу и найдите строку со звездочкой в ​​крайнем левом столбце .
  7. Щелкните правой кнопкой мыши звездочку и выберите Вставить .
  8. Ваши данные из Excel теперь вставлены в вашу таблицу в SQL Server, и SQL Server автоматически создаст для вас значения в столбце идентификатора / ключа:

Копирование и вставка данных из Excel в представления SQL Server

Представленный метод копирования и вставки для вставки данных из Excel в SQL Server также отлично работает, когда вам нужно вставить данные в представление SQL Server, если представление содержит данные только из одной таблицы.

В представлении в SQL Server, которое содержит данные из нескольких объединенных таблиц, вы не можете вставлять новые строки, но вы можете обновлять данные, если вы обновляете только столбцы, происходящие из той же базовой таблицы.

Советы при копировании данных из Excel на SQL-сервер

Проверка данных — начните с одной строки данных

Если данные, которые вы копируете из документа Excel, не соответствуют типам данных столбцов в таблице SQL Server, вставка данных будет отменена, и вы получите предупреждающее сообщение.Это произойдет для каждой строки, которую вы вставляете из Excel в SQL Server. Если вы вставите 500 строк из Excel с неправильным количеством столбцов, вы получите одно предупреждение для каждой вставляемой строки.

Чтобы избежать этого, уловка состоит в том, чтобы начать копировать только одну строку данных и вставить ее в таблицу SQL Server. Если вы получили предупреждающее сообщение о неправильных типах данных, вы можете исправить несоответствие и повторять процедуру копирования и вставки, пока все столбцы Excel не поместятся в таблицу в SQL Server.Когда все столбцы совпадут, выберите оставшиеся строки и вставьте их все в таблицу SQL Server за один шаг.

Вставка значений NULL из Excel в таблицу SQL Server

Если у вас есть столбцы в таблице SQL Server, которые допускают значения NULL, и вы хотите вставить значение NULL в таблицу, просто введите текст NULL в ячейку в Excel, а затем скопируйте и вставьте данные из Excel в SQL Server. :

Значения NULL будут вставлены в таблицу в SQL Server:

Таблицы с вычисляемыми столбцами

Для таблиц SQL Server, содержащих вычисляемые столбцы, вы можете вставить данные из Excel в эту таблицу, просто оставив данные для вычисляемого столбца пустыми в Excel, а затем скопировав и вставив данные из Excel в таблицу SQL Server.

Как получить имена столбцов из таблицы в SQL Server в Excel

При подготовке данных в Excel, которые позже должны быть скопированы в таблицу в SQL Server, удобно иметь имена столбцов базы данных и несколько строк с примерами данных в качестве ссылки в Excel.

Существует метод, при котором вы можете скопировать существующие данные в SQL Server в Excel и включить имена столбцов таблицы в качестве имен заголовков.

Выполните следующие действия, чтобы также включить имена столбцов при копировании нескольких строк данных из таблицы SQL Server в Excel:

  1. В SQL Server Management Studio найдите свою базу данных и разверните папку Tables .
  2. Щелкните правой кнопкой мыши имя своей таблицы и выберите третий вариант — Выбрать первые 1000 строк .
  3. Выберите строки для копирования в Excel, удерживая нажатой кнопку CTRL и щелкая номера строк слева.
  4. Когда ваши строки выбраны, щелкните правой кнопкой мыши одну строку и выберите вариант Копировать с заголовками :
  5. Зайдите в Excel и вставьте данные в ячейку. Заголовки из таблицы в SQL Server теперь будут добавлены как первая строка:

Excel для SQL Server на удаленном компьютере

При работе с базами данных SQL Server на удаленном компьютере, где вы подключаетесь к удаленному компьютеру с помощью подключения к удаленному рабочему столу, вы все равно можете использовать ту же технику копирования и вставки для перемещения данных из Excel локального компьютера в базу данных SQL Server на ваш удаленный компьютер.

Если вы не можете скопировать и вставить данные в свой SQL Server при подключении с помощью подключения к удаленному рабочему столу, сначала убедитесь, что копирование и вставка включены для подключения к удаленному рабочему столу:

  1. Откройте подключение к удаленному рабочему столу.
  2. Щелкните Показать параметры…
  3. Выберите вкладку Локальные ресурсы , а затем убедитесь, что свойство Буфер обмена отмечено:

Если вы по-прежнему не можете копировать и вставлять данные между Excel на локальном компьютере и SQL Server на удаленном сервере базы данных, узнайте у администратора сервера, включена ли функция копирования и вставки для подключения к удаленному рабочему столу на сервере.

Производительность Excel в SQL Server

Копирование и вставка данных из Excel в SQL Server — действительно простой метод вставки данных из Excel в базу данных SQL Server. Один из недостатков заключается в том, что это не самый быстрый метод, если вам нужно вставить большие объемы данных, например несколько сотен тысяч строк данных или больше.

Чтобы получить ссылку на пределы производительности, я провел несколько тестов на моем локальном компьютере i7 с 8 ГБ ОЗУ с установленными на одном компьютере Microsoft Excel и SQL Server.

У меня были следующие результаты: копирование данных в Excel с 10 столбцами смешанных типов данных в SQL Server заняло около 2 секунд для 100 строк, около 30 секунд для 1000 строк и около 10 минут для 20 000 строк.

Итак, я бы сказал, что ограничение на использование функции копирования и вставки составляет от нескольких тысяч до нескольких десятков тысяч строк данных.

Требования и ограничения

Для копирования и вставки данных из Excel в SQL Server вам потребуются установленные Microsoft Excel и SQL Server Management Studio.Вы можете скачать бесплатную версию SQL Server Management studio здесь.

Копирование данных из Excel в SQL Server отлично работает с несколькими тысячами строк данных с разумным временем загрузки.

Метод копирования и вставки может использоваться как для таблиц с бизнес-ключами, так и для таблиц с автоматически увеличивающимися ID-ключами.

Следует иметь в виду, что метод копирования и вставки предназначен только для вставки новых данных. Если вам нужно обновить существующие данные в таблице в SQL Server, вам нужно будет использовать либо внешний инструмент, такой как SQL Spreads, либо вставить данные во временную таблицу, а затем написать небольшой запрос SQL, который обновит вашу таблицу с помощью вставленные данные.

Сводка по

— вставка данных из Excel в SQL Server

Вставка данных из Excel в SQL Server с помощью функции копирования и вставки — действительно простой и удобный способ быстро загрузить данные в базу данных без необходимости запускать и настраивать какой-либо специальный инструмент. Функцию копирования и вставки можно использовать в сценариях, содержащих до нескольких десятков тысяч строк данных.

Метод копирования и вставки также отлично подходит для таблиц с автоматически увеличивающимся ключом идентификации — просто не забудьте добавить дополнительный пустой столбец слева от столбцов данных, как описано выше.

Его также можно использовать при работе с Excel на локальном компьютере и SQL Server на удаленном компьютере с помощью подключения к удаленному рабочему столу.

Excel для SQL Server — краткий справочник:

  • Сначала скопируйте данные из Excel, а затем вставьте их в таблицу SQL Server, используя пункт меню База данных > Таблица > Изменить верхние 200 строк .
  • Всегда начинайте с копирования и вставки одной строки данных для проверки типов данных.
  • Для таблиц SQL Server со столбцом идентификаторов добавьте дополнительный пустой крайний левый столбец перед копированием из Excel.
  • Копирование и вставка из Excel в SQL Server может использоваться для вставки до нескольких десятков тысяч строк данных.
  • Чтобы получить заголовки столбцов SQL Server в Excel, щелкните правой кнопкой мыши таблицу в SQL Server и выберите Копировать с заголовками .
  • Не забывайте, что этот метод также отлично работает при подключении к удаленному рабочему столу!

Как вставлять значения в таблицу SQL Server с помощью Python

В этом руководстве я покажу вам шаги по вставке значений в таблицу SQL Server с помощью Python.Я воспользуюсь простым примером, чтобы продемонстрировать эту концепцию.

Для начала вот общий синтаксис, который вы можете использовать для вставки значений в таблицу, созданную в SQL Server:

 ВСТАВИТЬ INTO Имя_базы_данных.Имя_таблицы (Имя_столбца1, Имя_столбца2, ...)

ЗНАЧЕНИЯ

('Column1_Value1', 'Column2_Value2', ...),

('Column1_Value3', 'Column2_Value4', ...)

 

Давайте теперь посмотрим, как применить этот синтаксис на практике.

Шаги по вставке значений в таблицу SQL Server с использованием Python

Шаг 1. Подготовьте набор данных

Чтобы вставить значения в таблицу SQL Server с помощью Python, вам понадобится существующая таблица для данной базы данных.

Например, предположим, что вы создали базу данных на SQL Server, где:

  • Имя базы данных: TestDB
  • Имя таблицы (со схемой dbo): dbo.Person
  • The dbo.Person содержит следующие данные:
6 9069 9069 затем получить эти данные в SQL Server с помощью простого запроса SELECT:

 ВЫБРАТЬ * ИЗ TestDB.dbo.Person
 

Конечная цель — вставить новые значения в таблицу dbo.Person с помощью Python.

Когда ваши данные будут готовы, переходите к следующему шагу.

Шаг 2. Установите соединение между Python и SQL Server

Затем вам нужно будет установить соединение между Python и SQL Server.

Вот полное руководство, объясняющее, как подключить Python к SQL Server с нуля.

Чтобы установить такое соединение, вам необходимо включить следующую информацию в код ниже:

  • Имя вашего сервера — в моем случае имя сервера: RON \ SQLEXPRESS
  • Имя вашей базы данных — в В нашем примере имя базы данных: TestDB
  • Ваша таблица, созданная в SQL Server — в нашем примере имя таблицы: dbo.Человек
 импорт pyodbc
conn = pyodbc.connect ('Драйвер = {SQL Server};'
                      'Сервер = RON \ SQLEXPRESS;'
                      'База данных = TestDB;'
                      'Trusted_Connection = да;')
 
курсор = conn.cursor ()
cursor.execute ('ВЫБРАТЬ * ИЗ TestDB.dbo.Person')
 
для строки в курсоре:
    печать (строка)
 

Это результат, который вы получите, когда запустите приведенный выше код Python (с учетом информации о подключении):

Шаг 3. Вставьте значения в таблицу SQL Server с помощью Python

Теперь давайте вставим следующие две записи в наш dbo.Лицо таблица:

Имя Возраст Город
Jade 20 Лондон Мэри
Мартин 25 Лондон
Роб 35 Женева
Мария 42 Париж
Джон
6
Имя Возраст Город
Боб 55 Монреаль
Дженни 9069 общий синтаксис, который вы видели в начале этого руководства, вы можете применить приведенный ниже код для вставки значений в SQL Server непосредственно из Python:

 импорт pyodbc
conn = pyodbc.connect ('Драйвер = {SQL Server};'
                      'Сервер = RON \ SQLEXPRESS;'
                      'База данных = TestDB;'
                      'Trusted_Connection = да;')

курсор = conn.cursor ()
cursor.execute ('ВЫБРАТЬ * ИЗ TestDB.dbo.Person')

курсор.execute ('' '
                ВСТАВИТЬ TestDB.dbo.Person (имя, возраст, город)
                ЗНАЧЕНИЯ
                («Боб», 55, «Монреаль»),
                (Дженни, 66, Бостон)
                '' ')
соед.совершить()
 

Не забудьте добавить conn.commit () в конце кода, чтобы гарантировать выполнение команды вставки.

Шаг 4: Проверьте результаты

Наконец, вы можете убедиться, что новые записи были вставлены в таблицу dbo.Person, выполнив следующий запрос SELECT в SQL Server:

 ВЫБРАТЬ * ИЗ TestDB.dbo.Person
 

Теперь вы должны увидеть две дополнительные записи внизу таблицы:

Шаблон вставки или обновления для Sql Server

Примечание Пользователи SQL Server 2008, теперь у вас есть встроенный оператор MERGE, который можно использовать вместо этих шаблонов.

Очень распространенной проблемой, которую на удивление трудно решить должным образом с помощью SQL, является проблема UPDATE или INSERT (иногда называемая upsert). Я хотел бы вставить строку в таблицу, если ключ не существует, и обновить строку, если ключ существует.

Oracle, DB2 и даже Sqlite имеют синтаксис SQL, который позволяет решить эту проблему одним оператором. Это не относится к SQL-серверу. Вам следует сделать это вручную.

Итак, за стол:

  создать таблицу t (первичный ключ pk int, hitCount int)
  

Очень часто используется следующий шаблон:

 , если существует (выберите * из t, где pk = @id)
начинать
   обновить t установить hitCount = hitCount + 1
   где pk = @id
конец
еще
начинать
   вставить в значения t (@id, 1)
конец
  

Приведенный выше код отлично работает в однопоточных приложениях, однако при вызове из нескольких потоков вы начинаете получать нарушения первичного ключа.

Это происходит потому, что пакет не выполняется атомарно. Два или более потока могут «подумать», что для существующего ключа нет данных, и впоследствии попытаться вставить данные.

Чтобы решить эту проблему, у вас есть два варианта. Во-первых, обработайте нарушения первичного ключа. Второй вариант — исправить транзакционную целостность пакета.

Давайте рассмотрим второй вариант.

Первый шаг — поместить весь SQL в блок begin tran commit tran .

  начало транзакции
если существует (выберите * из t, где pk = @id)
начинать
   обновить t установить hitCount = hitCount + 1
   где pk = @id
конец
еще
начинать
   вставить t (pk, hitCount)
   значения (@id, 1)
конец
совершить транзакцию
  

Это не решает проблему. Нарушения первичного ключа продолжаются. Причина этого в том, что уровень изоляции по умолчанию для транзакций — «чтение зафиксировано», что означает, что вам разрешено читать все зафиксированные транзакции. Но между первым и вторым оператором могут быть зафиксированы новые транзакции.

Итак, после того, как вы прочитаете об уровнях изоляции транзакций, вы можете решить исправить код и поместить его в сериализуемую транзакцию:

  установить сериализуемый уровень изоляции транзакции
начать тран
если существует (выберите * из t, где pk = @id)
начинать
   обновить t установить hitCount = hitCount + 1
   где pk = @id
конец
еще
начинать
   вставить t (pk, hitCount)
   значения (@id, 1)
конец
совершить транзакцию
  

После этого вы перестаете получать нарушения первичного ключа, однако … вы создаете гораздо большую проблему.Теперь вы можете заметить, что у вас начинаются тупиковые ситуации.

Почему это происходит? Что ж, сериализуемая транзакция означает, что оператор select получит общие блокировки для таблицы. Вы получите блокировку RangeS-S для ключа, когда данные отсутствуют (и блокировку ключа / страницы, если данные есть). Общие блокировки совместимы с другими разделяемыми блокировками, что означает, что другие потоки могут получить такую ​​же блокировку для одного и того же ключа / страницы. Позже в транзакции вам нужно обновить блокировку до эксклюзивной блокировки, чтобы вы могли изменить данные.Однако это невозможно сделать, если другие транзакции удерживают разделяемые блокировки. Что приводит к тупикам, например:

  # Ключ отсутствует
# Транзакция 1 получает RangeS-S по ключу 1
# Транзакция 2 получает RangeS-S по ключу 1
# Транзакция 1 хочет обновить блокировку до RangeX-X (начинает ожидание)
# Транзакция 2 хочет обновить блокировку до RangeX-X (начинает ждать)
# SQL Server обнаруживает взаимоблокировку и завершает одну из транзакций
  

Итак, нам нужно еще немного очистить транзакцию.Во время выполнения оператора SELECT мы хотели бы заблокировать выполнение того же оператора SELECT в других потоках. Удобная подсказка, которую мы можем использовать, — это подсказка UPDLOCK, она означает, что мы получим блокировки обновления вместо общих блокировок. Это не блокирует других читателей, но блокирует операторы, которые также должны удерживать блокировки обновления (например, операторы обновления или запросы, использующие подсказку UPDLOCK).

В результате мы создали критическую секцию в нашей транзакции.

Итак, вот первый хороший способ решить проблему:

  начало транзакции
если существует (выберите * из t с помощью (Updlock, сериализуемый), где pk = @id)
   начинать
   обновить t установить hitCount = hitCount + 1
   где pk = @id
конец
еще
начинать
   вставить t (pk, hitCount)
   значения (@id, 1)
конец
совершить транзакцию
  

Второй метод, который мы можем использовать:

  начало транзакции
   обновить t с помощью (сериализуемый)
   установить hitCount = hitCount + 1
   где pk = @id
   если @@ rowcount = 0
   начинать
      вставить t (pk, hitCount)
      значения (@ id, 1)
   конец
совершить транзакцию
  

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *