Для создания ип что нужно: Порядок регистрации ИП | ФНС России

Как зарегистрировать ИП быстро и без очередей

С 1 января 2016 года вступили в силу изменения в законодательство, которые позволили нотариусам оказывать гражданам помощь в регистрации бизнеса.

Каждый, кто когда-либо пытался зарегистрироваться в качестве ИП, знает о самых распространенных сложностях, в том числе и необходимости кропотливого и долгого заполнения всех необходимых документов. Ведь если в них закралась ошибка, сотрудники ФНС вернут документы с требованием привести их в надлежащий вид, а очередь тем временем пройдет и придется снова провести время в ожидании очередной попытки подать документы.

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

Чтобы зарегистрировать ИП, нужно сформировать пакет документов. В него входит заявление о регистрации физического лица в качестве индивидуального предпринимателя, копия российского паспорта, ИНН, который нужно получить в налоговой инспекции по месту постоянной регистрации и квитанция об уплате госпошлины. Будущие ИП, планирующие оказывать образовательные и иные услуги, потребителями которых могут стать несовершеннолетние, должны также предоставить справку об отсутствии судимости. Обязательно нужно сделать копии всех документов, копий лучше иметь несколько, так как они часто теряются.

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

Изменения в «Основы законодательства Российской Федерации о нотариате», которые вступили в силу с 1 января 2016 года, дали возможность нотариусам оказывать гражданам помощь в регистрации ИП. Эти изменения значительно упростили жизнь граждан, желающих стать индивидуальными предпринимателями. Для регистрации ИП достаточно обратиться в ближайшую нотариальную контору. Нотариус примет пакет документов, необходимых для регистрации, и сам осуществит всю процедуру взаимодействия с налоговым органом. Нотариус отправит документы в налоговый орган по месту регистрации обратившегося в электронном виде, заверив их своей цифровой подписью. Нотариус может не только отправлять документы в налоговый орган в электронной форме для регистрации индивидуального предпринимателя, но и получать готовые документы из налогового органа в электронной форме и выдать их предпринимателю в форме электронных документов. Также нотариус может перевести документы в бумажную форму и выдать на руки предпринимателю. При этом срок регистрации при использовании услуг нотариуса составляет пять дней.

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

Регистрации ИП. Пошаговая инструкция для 2021 г.

Шаг 1. Проверка наличия документов

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

Перечень требующихся документов:

  1. Заявление по форме Р21001 в одном экземпляре
  2. Заявление о переходе на УСН в трех экземплярах (если собираетесь применять данную
    систему налогообложения)
  3. Квитанция об оплате госпошлины
  4. Копия паспорта
  5. Копия ИНН (при наличии)

1.

1 Подготовка заявления по форме Р21001

Существует два варианта заполнения специальной формы: от руки (внимательно проверяйте ошибки
и описки, не допускайте исправлений) и при помощи онлайн сервиса (нужно скачать файл и
распечатать его). Листы заявления рекомендуется скрепить между собой обычной скрепкой во избежание путаницы.
Подпись на документах ставьте только в присутствии сотрудника налоговой службы. Не лишней
будет подготовка дополнительного экземпляра, так как правильность заполнения зависит не
столько от уровня грамотности, сколько от многих других нюансов. Единственная ошибка станет
причиной для отказа в регистрации ИП без возврата суммы, затраченной Вами на оплату
госпошлины. Поэтому, если у Вас возникают сомнения в возможности самостоятельного заполнения
формы Р21001, предлагаем обратиться к нашему
сервису, что гарантирует быстрый и верный результат.

Важно! С 25.11.2020 изменились форма заявления Р21001 для государственной регистрации ИП и требования к заполнению этой формы. Если вы подготовите заявление по старой форме, то его
не примут в налоговой. Наш бесплатный сервис поможет вам подготовить документы по новому образцу.

1.2 Подготовка заявления о переходе на УСН

При выборе упрощенной системы налогообложения (УСН) (про различные системы налогооблjжения можете прочитать в этой статье), потребуется скачать бланк формы № 26.2-1 и заполнить его вручную или
использовать для этого наш сервис, который
проделает за Вас работу быстро и качественно. Такое заявление нужно подготовить в трех
экземплярах и подать его одновременно с пакетом документов, подготовленным для регистрации
ИП. Разрешается также, подача бланка формы № 26.2-1 в территориальную Федеральную налоговую
службу, на что дается 30 дней, следующих после момента регистрации.

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

1.3 Оплата госпошлины

Существует несколько вариантов оплаты: в отделении любого банка, на официальном сайте Федеральной налоговой службы в онлайн-режиме, или во время подачи документов – посредством
терминала. Однако терминала в отделении ФНС может и не оказаться, надежнее заплатить пошлину
заблаговременно.

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

1.4 Ксерокопия паспорта

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

1.5 Сделайте копию ИНН

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

Важно! если Вам был присвоен ИНН, который Вы не указали в
заявлении, в регистрации ИП будет отказано.

Запрещено предоставлять в регистрирующий орган документы с двусторонней печатью.

Шаг 2. Подача документов

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

Важно! Документы подаются в регистрирующую налоговую
службу, по адресу постоянной прописки. Территориальная и регистрирующая ФНС могут быть разными.

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

Способы подачи документов:

  • Лично или с помощью представителя. Если Вы подаете документы на регистрацию
    самостоятельно, приготовьтесь предъявить паспорт. «Лист Б» заполняется в присутствии
    инспектора. На нем Вы напишете свои фамилию, имя и отчество – если имеется, и поставите
    подпись. Подать документы
    можно также, через представителя. В этом случае, доверитель обязан подписать заявление о
    регистрации ИП в присутствии нотариуса, а не при сотруднике налоговой службы. Копию
    паспорта тоже нужно заверить нотариально.

  • На портале Госуслуг. Официальный сайт Государственных услуг располагает сервисом,
    дающим возможность самостоятельной подачи документов на регистрацию в Федеральную
    налоговую службу. Для полноценного использования данного сервиса Вам необходимо будет
    создать личный кабинет и предоставить информацию о себе. Документы загружаются в
    электронную заявку, которая подписывается ЭЦП (электронно-цифровой подписью). Ответным
    письмом Вам будут высланы копии документов, подписанные ЭЦП ФНС, на email, который
    указан в форме Р21001. Следует отметить вариант получения документов о регистрации:
    лично или по почте. Наш сервис поможет Вам
    подготовить необходимый пакет документов, Вам только останется загрузить его на сайте
    Госуслуг.
  • Через МФЦ. Такие центры сегодня образованы в каждом регионе. При подаче
    документов в МФЦ нужно учесть несколько отличительных моментов: увеличение срока
    регистрации, невозможность почтовой отправки документов, только личное присутствие или
    присутствие представителя, располагающего нотариально заверенным заявлением и паспортом.
    Еще один нюанс – сотрудник МФЦ может быть некомпетентен в некоторых вопросах, касающихся
    заполнения документов, а инспектор ФНС откажет в регистрации, если обнаружит хотя бы
    одну ошибку.

    Важно! Многофункциональные центры не принимают
    заявление о переходе на УСН, так как эта услуга не относится непосредственно к регистрации предпринимателя. Это заявление Вам нужно подать в территориальную ФНС после государственной регистрации.

    Не стесняйтесь требовать от сотрудника МФЦ расписку о приеме документов. В случае
    отсутствия многофункционального центра в Вашем городе, регистрация осуществляется
    через налоговую службу.

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

    Документы отправляются заказным письмом, после того, как работник почтового отделения
    произведет опись предоставленных документов. Когда сотрудник ФНС получит заказное
    письмо, он проверит содержимое письма по описи и Вам будет выслано уведомление о
    получении отправления адресатом.

    Важно! После приема документов в ФНС Вы получите
    соответствующую расписку и один из экземпляров уведомления о применении УСН (если Вы
    его подавали), подписанную сотрудником налоговой службы.

Шаг 3. Получение документов

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

В бумажном виде готовые документы выдаются заявителю или его представителю по запросу в ФНС.
Рассмотрим порядок действий при разных вариантах подачи документации.

  1. При подаче документов через налоговую инспекцию заявитель подает запрос о выдаче
    бумажных документов об оформлении ИП вместе с основным пакетом документов.
  2. В случае с МФЦ заключительные документы в бумажном виде выдаются по запросу через центр.
    Налоговая инспекция высылает электронные документы в МФЦ и заявителю на следующие сутки
    после завершения срока, отведенного на оформление ИП. Заявитель может запросить в центре
    распечатать бумажные документы, подтверждающие содержание электронных.
  3. Нотариус выдаст документы самостоятельно. На следующие
    сутки после завершения срока, отведенного на регистрацию, налоговая отправляет нотариусу
    и заявителю документы в электронном виде. Заявитель может запросить у нотариуса бумажный
    вариант документов и удостоверить их.
  4. При обращении через PonyExpress или DHL (только для Москвы – у данных операторов
    заключено соглашение с МИФНС № 46),заявитель подает соответствующий запрос вместе с
    документами на регистрацию. Заявителю будут доставлены итоговые документы курьером, если
    услуга по доставке включает данное условие.

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

Налоговая инспекция выдаст Вам:

  1. Лист записи Единого государственного реестра индивидуальных предпринимателей по форме №
    Р60009.
  2. Уведомление о постановке на учет физического лица в налоговом органе, с указанием ИФНС,
    в которую Вам нужно будет предоставлять отчеты.
  3. В некоторых инспекциях Вам предоставят Письмо из Росстата, которое понадобится при
    открытии счета. В ином случае, его можно распечатать с сайта Росстата.
  4. Свидетельство о присвоении ИНН (если это не было сделано ранее).

Шаг 4. Регистрация в Пенсионном фонде

Сведения о зарегистрированном ИП передаются в Пенсионный фонд налоговой инспекцией
самостоятельно. От Пенсионного фонда Вам на почту придет свидетельство о регистрации с
присвоением регистрационного номера. Если этого не случилось, обратитесь в Пенсионный фонд.
Это действие не является обязательным, Вам нужно знать только сам регистрационный
номер.

Шаг 5. Регистрация ИП в ФСС

Если Вы планируете, прием сотрудников на работу, придется встать на учет в ФСС. Вам нужно будет
подать документы в соцстрах не позднее 30 дней после приёма на работу первого сотрудника.

Шаг 6. Открытие расчетного счета

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

Теперь Вам ничто не мешает вести бизнес. Удачи!

Все документы для регистрации ИП за 15 минут

Подготовка документов — рутинная задача. Доверьте её нашему сервису.
Это сэкономит время и защитит от возможных ошибок.

Другие статьи

Документы для регистрации ИП в 2021 г

1.

Общий список документов

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

  • Заявление по форме Р21001
  • Заявление о переходе на УСН (если планируете применять данную систему налогообложения)
  • Квитанция об оплате госпошлины
  • Копия паспорта

Важно! С 25.11.2020 изменились форма заявления Р21001 для государственной регистрации ИП и требования к заполнению формы. Если вы подготовите заявление по старой форме, то его
не примут в налоговой. Наш бесплатный сервис поможет вам подготовить документы по новому образцу.

2. Заявление по форме Р21001

Самый главный документ при регистрации ИП — заявление по форме Р21001. Этот бланк состоит из пяти листов. В нем указываются основные сведения о предпринимателе: имя, адрес, виды деятельности, контактные данные и прочее. Если заявление вы планируете отправить почтой или через представителя по доверенности, то с формой нужно будет обратиться к нотариусу для заверения подписи будущего предпринимателя. При личной подаче заявления нотариального заверения подписи не требуется, достаточно будет предъявить паспорт и поставить подпись в присутствии налогового инспектора или сотруднкиа МФЦ.

3. Заявление о переходе на УСН

Заявление на УСН. Чтобы работать на упрощенной системе налогообложения с момента регистрации это заявление надо подать либо вместе с документами на регистрацию ИП, либо в течение 30 дней с момента регистрации. При заполнении заявления вы выбираете как будете платить налог: как 6% от доходов или как 15% с разницы между доходами и расходами.

4. Квитанция об оплате госпошлины

Распечатайте квитанцию на оплату госпошлины. Заплатить пошлину по квитанции вы можете в любом банке. В некоторых отделениях для этого даже необязательно обращаться к операционисту. Специальные терминалы позволяют сделать это по штрих-коду. Просто поднесите его к сканирующему устройству. Также для оплаты пошлины можно воспользоваться онлайн-сервисом ФНС или интернет-банком.

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

С 1 января 2019 года оплачивать госпошлину за регистрацию не требуется, если документы подписаны усиленной электронно-цифровой подписью и подаются в электронном виде через сайт ФНС или портал Госуслуг. Так же можно не платить госпошлину, если подавать документы через МФЦ и нотариуса, там документы должны будут преобразовать в электронный вид.

Важно! Если вам выдали отказ в регистрации ИП, или были допущены ошибки при заполнении квитанции, то денежные средства не возвращаются.

5. Копия паспорта

Нужны копии всех заполненных страниц паспорта, хотя практика показывает, что в большинстве случаев требуют 2-3 стр. и страницу с последним штампом регистрации. Если указана временная регистрация, то необходима ксерокопия листа с временной регистрацией. Подавая документы лично, верность копии паспорта проверяет инспектор ФНС или сотрудник МФЦ при вас. Он сверяет данные копии с оригиналом документа. При отправлении документов почтой или оформлении ИП доверенным лицом, вам потребуется заверить копию документа, удостоверяющего личность, у нотариуса.

Получите документы на открытие ИП бесплатно

Не надо изучать многостраничные инструкции, достаточно внести персональную информацию в форму, остальное программа сделает автоматически. В результате вы получите полный пакет документов для открытия ИП и инструкцию по подаче.

Можно ли без образования открыть свой бизнес?

16 июля 2020

Содержание:

В 1975 году Стив Возняк прервал обучение в Университете Калифорнии и после этого создал компьютер, который принес ему богатство и славу. Коллега Возняка, Стив Джобс, приложил максимум усилий, чтобы техника Apple завоевала мировой рынок. И он тоже не окончил университет, прервав обучение.

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

Нужно ли высшее образование для открытия ИП или ООО

Закон не требует образования от предпринимателей. Чтобы зарегистрироваться в качестве индивидуального предпринимателя или создать общество с ограниченной ответственностью, не нужно предъявлять диплом. Минимальный пакет документов включает удостоверение личности, заявление, квитанцию об оплате государственной пошлины, возможно – уведомление о переходе на упрощенную систему налогообложения. Как видите, документов, подтверждающих образование, в списке нет. А вот достижение совершеннолетия, гражданство или вид на жительство подтвердить придется.

Однако уже на этапе создания ИП или ООО образование не помешает. Почему? Для начала потребуется выбрать коды деятельности по ОКВЭД, затем правильно заполнить заявление и сформировать пакет документов, выбрать систему налогообложения. Это только звучит просто. На практике многие начинающие предприниматели предпочитают обратиться за помощью специалистов: при малейшей ошибке в документах заявление отклонят, но сумму пошлины никто не вернет. Кроме того, уже на этом этапе закладываются многие принципы, по которым бизнес будет работать, поэтому регистрироваться нужно с ясным представлением о том, как коды ОКВЭД, система налогообложения и многое другое будут влиять на дело в будущем.

Кому нужно высшее образование

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

  • Разностороннее развитие.

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

  • Узкоспециализированные знания и навыки.

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

  • Доверие и репутация.

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

  • Полезные связи.

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

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

К тому же реальность современной жизни такова, что людям приходится учиться и переучиваться по нескольку раз. Этому способствует стремительное развитие технологий, изменения на рынке. Специалист, который смог обучиться один раз, при сохранении привычки к учебе сможет переучиться столько раз, сколько пожелает. Не стоит забывать и том, что некоторые сферы деятельности требуют не практических, а фундаментальных знаний, которые можно получить только в вузе.

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

Бизнесмены без образования, есть такие?

Люди, которые задаются вопросом, можно ли без образования открыть бизнес, часто слышат об успешных предпринимателях без диплома. Действительно, такие примеры есть. Один из самых известных бизнесменов, не получивший высшего образования, – это Генри Форд, создатель Ford Motor Company. Он закончил только церковную школу и всю жизнь писал с ошибками, однако ничуть не считал себя невежественным. Форд полагал, что человеку важнее уметь пользоваться собственным умом, чем уметь штудировать учебники.

Первый в мире долларовый миллиардер Джон Рокфеллер также не получил высшего образования, хотя окончил бухгалтерские курсы. Он уверял, что образование – только отличный старт для карьеры, но чтобы стать настоящим специалистом, необходимо много трудиться и ставить перед собой ясные цели.

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

Еще один прекрасный пример предпринимателя без образования – Амансио Ортега, основатель компании Inditex, которой принадлежат «Зара», «Бершка», «Страдивариус» и другие всемирно известные бренды. Ортега родился в бедной семье, которая не могла дать ему высшего образования. Но он много и упорно работал и какое-то время возглавлял список самых богатых людей планеты.

Развитие и неформальное обучение для бизнесменов

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

Где научиться основам бизнеса?

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

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

Поделиться в социальных сетях:

Инструкция по регистрации ИП в электронном виде в налоговой инспекции

Для формирования заявления на государственную регистрацию физического лица в качестве индивидуального предпринимателя необходимо скачать и установить программу подготовки документов для государственной регистрации с официального сайта налоговой службы. По ссылке https://www.nalog.ru/rn77/program/5961277/ выбираем установочный файл, скачиваем, совершаем стандартную установку: В результате успешной установки на рабочем столе появится ярлык программы. Запускаем двойным кликом: В открывшемся окне нажимаем кнопку «Новый документ». После нажатия появляется перечень доступных форм. Выбираем заявление по форме Р21001 и нажимам кнопку «Выбрать»: После окончания загрузки открывается форма регистрации ИП. Приступаем к заполнению. Проверьте сформировался ли индекс после введения адреса. Если индекс автоматически не сформировался, его необходимо ввести вручную. После заполнения всех необходимых полей первого листа заявления, переходим к заполнению дополнительных листов А и Б. Программа не позволит перейти на дополнительные листы, если на основном содержатся ошибки. Поля, содержащие ошибки, будут подсвечены красным цветом. Лист А предполагает заполнение данных по основному и дополнительному коду ОКВЭД. Для появления полей заполнения следует нажать кнопку «Добавить лист» в правом верхнем углу формы. Появятся поля для ввода. Обязательным является только основной ОКВЭД (должно быть указано не менее 4х символов). Дополнительные ОКВЭД заполняются при необходимости начиная с первой ячейки последовательно с лева на право до заполнения первой строки (если требуется), далее переходим во вторую строку (если требуется). Не по столбцам (!) Если ОКВЭД введен не верно, он также будет подсвечен красным: Справочные материалы по выбору кодов ОКВЭД можно посмотреть здесь и здесь. На листе Б указываем способ получения документов после успешно пройденной процедуры регистрации, контактные данные заявителя. После заполнения всех полей, сохраняем заявление в формате многостраничного TIF. Для этого необходимо нажать на кнопку  «Печать». Выбираем параметр сохранения «Многостраничный TIF».

Создание хранимой процедуры — SQL Server

  • 2 минуты на чтение

В этой статье

Применимо к: SQL Server (все поддерживаемые версии) База данных SQL Azure Управляемый экземпляр SQL Azure Azure Synapse Analytics Хранилище параллельных данных

В этом разделе описывается, как создать хранимую процедуру Transact-SQL с помощью SQL Server Management Studio и инструкции Transact-SQL CREATE PROCEDURE.

Разрешения

Требуется разрешение CREATE PROCEDURE в базе данных и разрешение ALTER для схемы, в которой создается процедура.

Как создать хранимую процедуру

Вы можете использовать одно из следующего:

Использование SQL Server Management Studio

Для создания процедуры в обозревателе объектов

  1. В обозревателе объектов подключитесь к экземпляру компонента Database Engine, а затем разверните этот экземпляр.

  2. Разверните «Базы данных», разверните базу данных AdventureWorks2012, а затем разверните «Возможность программирования».

  3. Щелкните правой кнопкой мыши «Хранимые процедуры» и выберите «Новая хранимая процедура».

  4. В меню «Запрос» выберите «Указать значения для параметров шаблона».

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

    Параметр Значение
    Автор Ваше имя
    Дата создания Сегодняшняя дата
    Описание Возвращает данные о сотрудниках.
    Имя_процедуры HumanResources.uspGetEmployeesTest
    @ Param1 @LastName
    @ Datatype_For_Param1 nvarchar (50)
    Default_Value_For_Param1 NULL
    @ Param2 @FirstName
    @ Datatype_For_Param2 nvarchar (50)
    Default_Value_For_Param2 NULL
  6. Нажмите ОК.

  7. В редакторе запросов замените оператор SELECT следующим оператором:

      ВЫБРАТЬ Имя, Фамилия, Отдел
    ОТ HumanResources.vEmployeeDepartmentHistory
    ГДЕ FirstName = @FirstName И LastName = @LastName
        И EndDate ЕСТЬ NULL;
      
  8. Чтобы проверить синтаксис, в меню «Запрос» щелкните «Анализ». Если возвращается сообщение об ошибке, сравните утверждения с приведенной выше информацией и при необходимости исправьте.

  9. Чтобы создать процедуру, в меню «Запрос» щелкните «Выполнить».Процедура создается как объект в базе данных.

  10. Чтобы просмотреть процедуру, перечисленную в обозревателе объектов, щелкните правой кнопкой мыши «Хранимые процедуры» и выберите «Обновить».

  11. Чтобы запустить процедуру, в обозревателе объектов щелкните правой кнопкой мыши имя хранимой процедуры HumanResources.uspGetEmployeesTest и выберите «Выполнить хранимую процедуру».

  12. В окне «Выполнить процедуру» введите Margheim в качестве значения параметра @LastName и введите значение Diane в качестве значения для параметра @FirstName.

Предупреждение

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

с использованием Transact-SQL

Для создания процедуры в редакторе запросов

  1. В обозревателе объектов подключитесь к экземпляру компонента Database Engine.

  2. В меню «Файл» выберите «Новый запрос».

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

      ИСПОЛЬЗОВАТЬ AdventureWorks2012;
    ИДТИ
    СОЗДАТЬ ПРОЦЕДУРУ HumanResources.uspGetEmployeesTest2
        @LastName nvarchar (50),
        @FirstName nvarchar (50)
    В ВИДЕ
    
        УСТАНОВИТЬ NOCOUNT ON;
        ВЫБЕРИТЕ имя, фамилию, отдел
        ОТ HumanResources.vEmployeeDepartmentHistory
        ГДЕ FirstName = @FirstName И LastName = @LastName
        И EndDate ЕСТЬ NULL;
    ИДТИ
    
      
  4. Чтобы запустить процедуру, скопируйте и вставьте следующий пример в новое окно запроса и нажмите «Выполнить».Обратите внимание, что показаны различные методы указания значений параметров.

      EXECUTE HumanResources.uspGetEmployeesTest2 N'Ackerman ', N'Pilar';
    -- Или же
    EXEC HumanResources.uspGetEmployeesTest2 @LastName = N'Ackerman ', @FirstName = N'Pilar';
    ИДТИ
    -- Или же
    ВЫПОЛНИТЬ HumanResources.uspGetEmployeesTest2 @FirstName = N'Pilar ', @LastName = N'Ackerman';
    ИДТИ
    
      

См. Также

ПРОЦЕДУРА СОЗДАНИЯ (Transact-SQL)

хранимых процедур (ядро СУБД) — SQL Server

  • 5 минут на чтение

В этой статье

Применимо к: SQL Server (все поддерживаемые версии) База данных SQL Azure Управляемый экземпляр SQL Azure Azure Synapse Analytics Хранилище параллельных данных

Хранимая процедура в SQL Server — это группа из одного или нескольких операторов Transact-SQL или ссылка на Microsoft.NET Framework общего языка выполнения (CLR). Процедуры похожи на конструкции в других языках программирования, потому что они могут:

  • Принять входные параметры и вернуть несколько значений в виде выходных параметров вызывающей программе.

  • Содержат операторы программирования, выполняющие операции в базе данных. К ним относятся вызов других процедур.

  • Вернуть значение состояния вызывающей программе, чтобы указать успех или сбой (и причину сбоя).

Преимущества использования хранимых процедур

В следующем списке описаны некоторые преимущества использования процедур.

Уменьшение сетевого трафика сервера / клиента
Команды в процедуре выполняются как единый пакет кода. Это может значительно снизить сетевой трафик между сервером и клиентом, поскольку по сети отправляется только вызов для выполнения процедуры. Без инкапсуляции кода, обеспечиваемой процедурой, каждая отдельная строка кода должна пересекать сеть.

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

Предложение EXECUTE AS может быть указано в операторе CREATE PROCEDURE, чтобы разрешить олицетворение другого пользователя или разрешить пользователям или приложениям выполнять определенные действия с базой данных, не требуя прямых разрешений на базовые объекты и команды.Например, некоторые действия, такие как TRUNCATE TABLE, не имеют разрешенных разрешений. Чтобы выполнить TRUNCATE TABLE, пользователь должен иметь права ALTER для указанной таблицы. Предоставление пользователю разрешений ALTER для таблицы может быть не идеальным, потому что у пользователя фактически будут разрешения, намного превышающие возможность усечения таблицы. Включив оператор TRUNCATE TABLE в модуль и указав, что этот модуль будет выполняться от имени пользователя, имеющего разрешения на изменение таблицы, вы можете расширить права на усечение таблицы для пользователя, которому вы предоставляете разрешения EXECUTE для модуля.

При вызове процедуры по сети виден только вызов для выполнения процедуры. Следовательно, злоумышленники не могут видеть имена таблиц и объектов базы данных, встраивать собственные операторы Transact-SQL или искать важные данные.

Использование параметров процедуры помогает защититься от атак SQL-инъекций. Поскольку ввод параметров рассматривается как буквальное значение, а не как исполняемый код, злоумышленнику сложнее вставить команду в оператор (-ы) Transact-SQL внутри процедуры и нарушить безопасность.

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

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

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

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

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

Типы хранимых процедур

Пользовательская
Пользовательская процедура может быть создана в пользовательской базе данных или во всех системных базах данных, кроме базы данных ресурсов. Процедура может быть разработана либо на языке Transact-SQL, либо в качестве ссылки на метод общего языка выполнения (CLR) Microsoft .NET Framework.

Временные
Временные процедуры — это форма процедур, определяемых пользователем.Временные процедуры похожи на постоянные, за исключением того, что временные процедуры хранятся в базе данных tempdb. Есть два типа временных процедур: локальные и глобальные. Они отличаются друг от друга своими именами, видимостью и доступностью. Локальные временные процедуры имеют один знак числа (#) в качестве первого символа их имен; они видны только текущему пользовательскому соединению и удаляются при закрытии соединения. Глобальные временные процедуры имеют два знака числа (##) в качестве первых двух символов их имен; они видны любому пользователю после их создания и удаляются в конце последнего сеанса с помощью процедуры.

Система
Системные процедуры включены в SQL Server. Они физически хранятся во внутренней скрытой базе данных ресурсов и логически появляются в схеме sys каждой системной и пользовательской базы данных. Кроме того, база данных msdb также содержит системные хранимые процедуры в схеме dbo, которые используются для планирования предупреждений и заданий. Поскольку системные процедуры начинаются с префикса sp_, мы не рекомендуем использовать этот префикс при именовании пользовательских процедур. Полный список системных процедур см. В разделе Системные хранимые процедуры (Transact-SQL)

.

SQL Server поддерживает системные процедуры, которые обеспечивают интерфейс между SQL Server и внешними программами для различных операций по обслуживанию.Эти расширенные процедуры используют префикс xp_. Полный список расширенных процедур см. В разделе Общие расширенные хранимые процедуры (Transact-SQL).

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

Примечание

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

Связанное содержимое

Хранимые процедуры CLR
Отложенное разрешение имен

Изучение SQL: определяемые пользователем хранимые процедуры

Хранимые процедуры (SP) — еще один мощный объект базы данных, который находится в нашем распоряжении. Они могут помочь нам справиться со многими задачами и повысить производительность и безопасность. Сегодня мы рассмотрим простые сервисные программы и покажем на примерах, как их использовать.

Модель

Как всегда, в начале статьи мы напомним себе об используемой нами модели данных.

В этой статье мы создадим простые хранимые процедуры, которые будут использовать одну таблицу, и это будет таблица клиентов.

Что такое хранимые процедуры

Хранимые процедуры (SP) в SQL Server аналогичны процедурам / подпрограммам в других СУБД или языках программирования.Каждая процедура состоит из одного или нескольких операторов. В нашем случае это операторы SQL. Итак, вы можете написать процедуру, которая будет: вставлять новые данные, обновлять или удалять существующие, получать данные с помощью оператора SELECT. И что еще лучше, вы можете комбинировать больше (разных операторов) в хранимых процедурах. Кроме того, внутри процедуры вы можете вызвать другой SP, функцию, использовать оператор IF и т. Д. Следовательно, довольно очевидно, что SP может делать гораздо больше, чем один запрос выбора.

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

Хранимые процедуры — простой пример

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

ПРОЦЕДУРА УДАЛЕНИЯ, ЕСЛИ СУЩЕСТВУЕТ p_customer_all;

GO

CREATE PROCEDURE p_customer_all

— процедура возвращает все строки из таблицы клиентов

AS BEGIN

SELECT *

FROM customer;

КОНЕЦ;

Здесь я хочу выделить несколько моментов:

  • Мы использовали DROP PROCEDURE IF EXISTS p_customer_all; заявление в первой строке.Это хорошая практика, особенно когда вы создаете сценарии, которые должны работать всегда, независимо от состояния базы данных. Команда DROP PROCEDURE p_customer_all; удалит процедуру с заданным именем. Тем не менее, если процедура еще не была создана в базе данных, это приведет к ошибке. Следовательно, добавление IF EXISTS предотвращает это. В этой строке обычно говорится: «Я удалю эту процедуру, если она есть на сервере, а если ее нет, хорошо, ничего не делайте».
  • Слово GO вставляется между двумя операторами SQL в подобных ситуациях.
  • Имя нашей процедуры — p_customer_all.Причина в следующем — «p» обозначает процедуру, за ней следует имя таблицы (заказчик) и действие, для которого мы будем использовать эту процедуру (вернуть все).
  • Тело процедуры — это простой оператор выбора, возвращающий все строки из этой таблицы.

После создания процедуры вы можете увидеть ее в обозревателе объектов в разделе «Программируемость» -> «Хранимые процедуры».

Давайте теперь вызовем / выполним нашу SP.

Для этого воспользуемся синтаксисом: EXEC имя_процедуры <параметры, если есть> ;. Итак, наше утверждение:

Результат показан на картинке ниже:

Как видите, эта процедура довольно проста и выполняет ту же работу, что и простой выбор. Хотя в этом нет никаких преимуществ, на самом деле это так. Тем не менее, эти преимущества становятся еще более заметными при более сложных процедурах.Мы поговорим о преимуществах использования SP через минуту.

Хранимые процедуры — более сложные примеры

Предыдущий пример был довольно простым, но все же хорошо показывает, что могут делать SP. Кроме того, мы можем легко создать SP, чтобы получить только одну строку, вставить новую или удалить / обновить существующую строку. Мы покажем 3 примера — получение строки по идентификатору, вставка новой строки и удаление существующей строки. Мы будем использовать то же правило соглашения об именах, которое мы использовали в предыдущем примере (p_table_name_action_name).

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

ПРОЦЕДУРА УДАЛЕНИЯ, ЕСЛИ СУЩЕСТВУЕТ p_customer;

GO

CREATE PROCEDURE p_customer (@id INT)

— процедура возвращает всю строку для данного id.

AS BEGIN

SELECT *

FROM customer

WHERE id = @id;

КОНЕЦ;

Новым моментом здесь является то, что мы передаем параметр в процедуру.Мы можем передать один или несколько параметров. Мы перечислим их все после имени процедуры в строке CREATE PROCEDURE (CREATE PROCEDURE p_customer (@id INT)).

Теперь мы готовы выполнить вторую процедуру:

В результате, как и ожидалось, будут представлены все сведения о клиенте с id = 4. Обратите внимание, что мы указали параметры без «(« и ») после имени процедуры в строке EXEC.

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

ПРОЦЕДУРА УДАЛЕНИЯ, ЕСЛИ СУЩЕСТВУЕТ p_customer_insert;

GO

СОЗДАТЬ ПРОЦЕДУРУ p_customer_insert (@customer_name VARCHAR (255), @city_id INT, @customer_address VARCHAR (255), @next_call_date DATE)

— процедура вставляет нового клиента

КАК НАЧАТЬ

INSIN

customer_name, city_id, customer_address, next_call_date, ts_inserted)

VALUES (@customer_name, @city_id, @customer_address, @next_call_date, SYSDATETIME ());

КОНЕЦ;

Здесь следует обратить внимание на следующие важные моменты:

  • В этой процедуре мы использовали более одного параметра.
  • Для значения ts_inserted мы использовали функцию SYSDATETIME () для хранения текущего времени.

После выполнения процедуры с помощью оператора:

EXEC p_customer_insert «Новый клиент», 1, «Новый адрес», NULL;

добавлена ​​новая строка.Мы проверим, что находится в таблице, вызвав первую созданную нами процедуру:

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

ПРОЦЕДУРА УДАЛЕНИЯ, ЕСЛИ СУЩЕСТВУЕТ p_customer_delete;

GO

СОЗДАТЬ ПРОЦЕДУРУ p_customer_delete (@id INT)

— процедура удаляет строку для данного идентификатора

НАЧАЛО

УДАЛИТЬ

ОТ клиента

WHERE id = @id;

КОНЕЦ;

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

EXEC p_customer_delete 6;

Это удалило строку с идентификатором 6. Давайте проверим ее еще раз, используя нашу первую процедуру:

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

Преимущества использования хранимых процедур

У SP много преимуществ. Попробую перечислить самые важные:

  • Модульное программирование. Если вы решите поместить всю логику внутри SP, вы сможете легко создавать / идентифицировать модули / части вашего кода, отвечающие за различные бизнес-операции в вашей системе. Это потребует использования хорошего соглашения об именах и внутренних правил, но преимущества действительно огромны.Когда вам нужно что-то изменить, вы сможете быстрее найти соответствующий код. Когда вы изменяете этот код (SP), изменение должно быть немедленно видно во всех местах, где этот SP вызывается.
  • Лучшая производительность — хранимые процедуры анализируются и оптимизируются после создания. Поскольку они хранятся, нет необходимости снова анализировать и оптимизировать их, как это было бы в случае, когда они не используются. Это определенно сэкономит время при выполнении запросов внутри SP.
  • Уменьшение сетевого трафика — Возможно, это не так важно, как другие, но все же является преимуществом.Когда вы вызываете SP, вы передаете его имя и параметры. В противном случае вам нужно будет отправить все строки кода. В случае, если SP довольно сложный, это будет иметь большее влияние.
  • Безопасность — Это очень важно. Как и в случае с другими объектами базы данных, вы можете определить, кто может получить к ним доступ и как он может использовать эти объекты. Вы можете предоставить пользователю разрешение на выполнение SP, даже если у него нет разрешения на использование всех таблиц в этой процедуре. Таким образом, вы сможете ограничить пользователей использованием только тех объектов, которые вы хотите, чтобы они использовали.Кроме того, потенциальный злоумышленник не сможет увидеть структуру вашей базы данных в коде — он увидит только имя провайдера, которому вы звоните.

Заключение

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

Содержание

Эмиль — профессионал в области баз данных с более чем 10-летним опытом работы во всем, что связано с базами данных. В течение многих лет он работал в сфере информационных технологий и финансов, а сейчас работает фрилансером.

Его прошлые и настоящие занятия варьируются от дизайна и программирования баз данных до обучения, консультирования и написания статей о базах данных. Также не забывайте, BI, создание алгоритмов, шахматы, филателия, 2 собаки, 2 кошки, 1 жена, 1 ребенок …

Вы можете найти его в LinkedIn

Просмотреть все сообщения Эмиля Drkusic

Последние сообщения Эмиля Drkusic (увидеть все)

Хранимые процедуры SQL Server для начинающих

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

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

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

Преимущества использования хранимой процедуры

Его можно легко изменить: мы можем легко изменить код внутри хранимой процедуры без необходимости перезапуска или развертывания приложения. Например, если запросы T-SQL написаны в приложении и если нам нужно изменить логику, мы должны изменить код в приложении и повторно развернуть его. Хранимые процедуры SQL Server устраняют такие проблемы, сохраняя код в базе данных. поэтому, когда мы хотим изменить логику внутри процедуры, мы можем просто сделать это с помощью простого оператора ALTER PROCEDURE.

Уменьшение сетевого трафика: когда мы используем хранимые процедуры вместо написания запросов T-SQL на уровне приложения, по сети передается только имя процедуры, а не весь код T-SQL.

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

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

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

Я создаю образцы таблиц, которые будут использоваться в примерах в этой статье.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

CREATE TABLE Product

(ProductID INT, ProductName VARCHAR (100))

GO

CREATE TABLE ProductDescription

(ProductID INT, ProductDescription VARCHAR (800))

GO

INSERT INTO Product VALUES (680, ‘HL Road Frame — Black, 58’)

, (706, ‘HL Road Frame — Red, 58’)

, (707, ‘Sport-100 Helmet, Red’)

GO

ВСТАВИТЬ В ОПИСАНИЕ ПРОДУКТА ЗНАЧЕНИЯ (680, ‘Сменное горное колесо для райдера начального уровня.’)

, (706, «Прочный сплав с быстроразъемной втулкой.»)

, (707, «Аэродинамические диски для плавной езды»)

GO

Создание простой хранимой процедуры

Мы создадим простую хранимую процедуру, которая объединяет две таблицы и возвращает набор результатов, как показано в следующем примере.

СОЗДАТЬ ПРОЦЕДУРУ GetProductDesc

КАК

НАЧАТЬ

УСТАНОВИТЬ НОСЧЕТ

ВЫБРАТЬ P.ProductID, P.ProductName, PD.ProductDescription FROM

Product P

INNER JOIN ProductDescription PD ON P.ProductID = PD.ProductID

END

Мы можем использовать «EXEC ProcedureName» для выполнения хранимых процедур. Когда мы выполняем процедуру GetProductDesc, набор результатов выглядит так, как показано ниже.

Создание хранимой процедуры с параметрами

Давайте создадим хранимую процедуру SQL Server, которая принимает входные параметры и обрабатывает записи на основе входного параметра.

Ниже приведен пример хранимой процедуры, которая принимает параметр.

СОЗДАТЬ ПРОЦЕДУРУ GetProductDesc_withparameters

(@PID INT)

AS

НАЧАТЬ

УСТАНОВИТЬ НОМЕР НА

ВЫБРАТЬ P.ProductID, P.ProductName, PD.ProductDescription FROM

INDERNERProduct НА P.ProductID = PD.ProductID

ГДЕ [email protected]

END

EXEC GetProductDesc_withparameters 706

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

Создание хранимой процедуры со значениями параметров по умолчанию

Ниже приведен пример хранимой процедуры со значениями параметров по умолчанию.

СОЗДАТЬ ПРОЦЕДУРУ GetProductDesc_withDefaultparameters

(@PID INT = 706)

КАК

НАЧАТЬ

УСТАНОВИТЬ НОМЕР НА

ВЫБРАТЬ P.ProductID, P.ProductName, PD. ProductDescription PD ON P.ProductID = PD.ProductID

ГДЕ [email protected]

END

Когда мы выполняем вышеуказанную процедуру без передачи значения параметра, будет использоваться значение по умолчанию 706.Но при выполнении передачи значения значение по умолчанию будет проигнорировано, а переданное значение будет рассматриваться как параметр.

Создание хранимой процедуры с выходным параметром

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

СОЗДАТЬ ТАБЛИЦУ Сотрудник (EmpID int identity (1,1), EmpName varchar (500))

СОЗДАТЬ ПРОЦЕДУРУ ins_NewEmp_with_outputparamaters

(@Ename varchar (50),

@EId int output)

AS

BEGIN

УСТАНОВИТЬ NOCOUNT ON

INSERT INTO Employee (EmpName) VALUES

@ Имя сотрудника (EmpName) @

ВЫБРАТЬ @ EId = SCOPE_IDENTITY ()

КОНЕЦ

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

объявить @EmpID INT

EXEC ins_NewEmp_with_outputparamaters ‘Andrew’, @EmpID OUTPUT

SELECT @EmpID

Создание зашифрованной хранимой процедуры

Мы можем скрыть исходный код в хранимой процедуре, создав процедуру с опцией «ШИФРОВАНИЕ».

Ниже приведен пример зашифрованной хранимой процедуры.

СОЗДАТЬ ПРОЦЕДУРУ GetEmployees

С ШИФРОВАНИЕМ

AS

BEGIN

SET NOCOUNT ON

SELECT EmpID, EmpName from Employee

END

Когда мы пытаемся просмотреть код хранимой процедуры SQL Server с помощью sp_helptext, он возвращает «Текст для объекта GetEmployees зашифрован.”

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

Создание временной процедуры

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

Эти процедуры создаются в базе данных tempdb.

Локальные временные хранимые процедуры SQL Server: они создаются с префиксом # и доступны только в том сеансе, в котором они были созданы. Эта процедура автоматически прерывается при закрытии соединения.

Ниже приведен пример создания локальной временной процедуры.

СОЗДАТЬ ПРОЦЕДУРУ #Temp

AS

НАЧАТЬ

ПЕЧАТЬ ‘Процедура локальной температуры’

КОНЕЦ

Глобальная временная хранимая процедура SQL Server: эти процедуры создаются с префиксом ## и могут быть доступны также в других сеансах.Эта процедура автоматически сбрасывается при закрытии соединения, которое использовалось для создания процедуры.

Ниже приведен пример создания глобальной временной процедуры.

CREATE PROCEDURE ## TEMP

AS

BEGIN

PRINT ‘Global temp procedure’

END

Изменение хранимой процедуры

Используйте оператор ALTER PROCEDURE, чтобы изменить существующую хранимую процедуру.Ниже приведен пример изменения существующей процедуры.

ИЗМЕНИТЬ ПРОЦЕДУРУ GetProductDesc

AS

НАЧАТЬ

УСТАНОВИТЬ НОСЧЕТ НА

ВЫБРАТЬ P.ProductID, P.ProductName, PD.ProductDescription FROM

Product P

INNER JOIN ProductDescription PD ON P. ProductID

КОНЕЦ

Переименование хранимой процедуры

Чтобы переименовать хранимую процедуру с помощью T-SQL, используйте системную хранимую процедуру sp_rename.Ниже приведен пример переименования процедуры «GetProductDesc» на новое имя «GetProductDesc_new».

sp_rename ‘GetProductDesc’, ‘GetProductDesc_new’

Заключение

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

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

Последние сообщения Ранги Бабу (посмотреть все)

Хранимые процедуры SQL


Что такое хранимая процедура?

Хранимая процедура — это подготовленный код SQL, который можно сохранить, поэтому
код можно использовать снова и снова.

Итак, если у вас есть SQL-запрос, который вы пишете снова и снова, сохраните
как хранимую процедуру, а затем просто вызовите ее для ее выполнения.

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

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

СОЗДАТЬ ПРОЦЕДУРУ имя_процедуры
AS
sql_statement
ИДТИ;

Выполнить хранимую процедуру


Демо-база данных

Ниже представлен выбор из таблицы «Клиенты» в образце базы данных Northwind:

Идентификатор клиента Имя клиента ContactName Адрес Город Почтовый индекс Страна
1 Альфредс Футтеркисте Мария Андерс Obere Str.57 Берлин 12209 Германия
2 Ana Trujillo Emparedados y helados Ана Трухильо Avda. de la Constitución 2222 México D.F. 05021 Мексика
3 Антонио Морено Такерия Антонио Морено Матадерос 2312 Мексика Д.F. 05023 Мексика
4 Вокруг Рога Томас Харди 120 Ганновер пл. Лондон WA1 1DP Великобритания
5 Berglunds snabbköp Кристина Берглунд Berguvsvägen 8 Лулео С-958 22 Швеция

Пример хранимой процедуры

Следующий оператор SQL создает хранимую процедуру с именем «SelectAllCustomers».
который выбирает все записи из таблицы «Клиенты»:

Пример

СОЗДАТЬ ПРОЦЕДУРУ SelectAllCustomers
AS
SELECT * FROM Customers
GO;

Выполните указанную выше хранимую процедуру следующим образом:

Пример

EXEC SelectAllCustomers;



Сохраненная процедура с одним параметром

Следующий оператор SQL создает хранимую процедуру
который выбирает клиентов из определенного города из таблицы «Клиенты»:

Пример

СОЗДАТЬ ПРОЦЕДУРУ SelectAllCustomers
@City nvarchar (30)
КАК
ВЫБРАТЬ * ОТ клиентов ГДЕ
City = @City
GO;

Выполните указанную выше хранимую процедуру следующим образом:

Пример

EXEC SelectAllCustomers @City = ‘Лондон’;


Сохраненная процедура с несколькими параметрами

Установить несколько параметров очень просто.Просто перечислите каждый параметр и
тип данных, разделенный запятой, как показано ниже.

Следующий оператор SQL создает хранимую процедуру
который выбирает клиентов из определенного города с определенным почтовым кодом из таблицы «Клиенты»:

Пример

СОЗДАТЬ ПРОЦЕДУРУ SelectAllCustomers
@City nvarchar (30), @PostalCode nvarchar (10)
AS
ВЫБРАТЬ * ОТ клиентов ГДЕ
Город = @City AND PostalCode = @PostalCode
GO;

Выполните указанную выше хранимую процедуру следующим образом:

Пример

EXEC SelectAllCustomers @City = ‘Лондон’, @PostalCode = ‘WA1 1DP’;

Создание хранимых процедур — ваше первое знакомство с

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

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

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

Подробнее об этом видео можно узнать из его стенограммы:

Если вы хотите узнать больше о том, как создавать хранимые процедуры, почему бы не пройти мой курс «Распакованные хранимые процедуры»? Используйте код купона BLOGPOST-201, чтобы получить его со значительной скидкой.

Распакованные хранимые процедуры

Зачем нам нужно создавать хранимые процедуры?

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

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

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

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

Прежде чем мы приступим к созданию хранимых процедур, я хочу поговорить о том, где находятся объекты хранимых процедур в Management Studio.

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

Я нажимаю кнопку «Программирование», вы видите, что здесь есть другие папки, одна из которых называется хранимой процедурой.И затем под папкой хранимых процедур будут все созданные хранимые процедуры.

Теперь я открою новое окно запроса, чтобы мы могли создать нашу первую хранимую процедуру. Я создал окно запроса, которое указывает на базу данных AdventureWorks, и сейчас я собираюсь ввести команду для создания хранимой процедуры. Для этого нажмите CREATE PROCEDURE, затем AS, затем BEGIN и затем END.

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

Прежде чем я продвинусь дальше, мне нужно добавить параметры, и эти параметры находятся между CREATE PROCEDURE и AS. Здесь я введу свои параметры, и, как мы уже говорили ранее, у нас есть расстояние и скорость.

Я ввожу параметр расстояния как поплавок, он будет иметь десятичное значение и скорость. Обратите внимание, что перед параметрами стоит знак @. Это символ, который вы получаете, когда нажимаете Shift и 2, и теперь я готов ввести код.

Первый элемент, который я добавлю, — это часть с NOCOUNT. По сути, NOCOUNT вводится для того, чтобы SQL не возвращал дополнительных результатов, указывающих, сколько строк было возвращено в последнем выполненном SELECT.

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

Я собираюсь проверить, что если скорость не равна нулю, тогда давайте ВЫБИРАЕМ выражение @distance / @velocity, так что, опять же, это будет как 120 миль, разделенные на 60 миль в час, чтобы дать нам на это ушло два часа.

Это вернет результат. Если моя скорость равна нулю, а это, как вы знаете из математики, нельзя разделить на ноль, мы просто вернем ноль.

Это моя хранимая процедура. У хранимой процедуры есть имя. У него есть параметры. У него есть NOCOUNT. Это стандартно, а вот код, который запускается и выполняется. Мы вернем расстояние, разделенное на скорость, то есть время, необходимое для преодоления расстояния, зависит от того, насколько быстро мы движемся.Очень простой пример, но, надеюсь, он показывает вам, как строится хранимая процедура.

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

А теперь вы можете увидеть CalculateTime. Теперь у него есть параметры, и он возвращает целое число. Итак, база данных разобралась, что требует наша процедура и как она будет работать.

Давайте запустим эту хранимую процедуру. Я уже приводил пример. Как мы можем запустить нашу хранимую процедуру, так это создать новое окно запроса, и мы можем использовать команду exec. Exec — это сокращение от execute, и я могу вводить exec или execute.

А теперь я запускаю хранимую процедуру и говорю: «Мы проходим расстояние 120, и мы идем со скоростью 40 миль в час». И когда я запускаю это, оно должно возвращаться со значением 3, и, как вы можете видеть, оно возвращается со значением 3.

Если бы я изменил нашу скорость на ноль, что бы произошло? Он возвращается с нулем, потому что, если вы помните, у нас был оператор IF-THEN, в котором говорилось, что если наша скорость равна нулю, мы не можем делить на ноль, поэтому верните ноль. Опять же, если величина скорости равна нулю, если скорость не равна нулю, выполните расчет, в противном случае ВЫБЕРИТЕ ноль.

Вот вкратце, как вы можете создать и запустить хранимую процедуру. Мы создаем хранимую процедуру с помощью команды CREATE PROCEDURE, а затем можем запустить ее с помощью execute.

Опять же, вся идея здесь не в том, чтобы научить вас создавать хранимую процедуру и отправлять вас в путь и говорить: «Хорошо. Тебе хорошо идти. Больше не ходи на занятия «.

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

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

хранимых процедур — таблица

Хранимая процедура — это подпрограмма, доступная приложениям, которые обращаются к системе реляционной базы данных. Когда вы подключаетесь к базе данных SAP Sybase ASE, Microsoft SQL Server или Teradata с помощью Tableau, вы можете использовать хранимую процедуру для определения подключения.

Для Oracle вы можете использовать табличную функцию для определения соединения.Табличные функции Oracle действуют аналогично хранимым процедурам и перечислены в разделе «Хранимые процедуры» на странице «Источник данных».

Когда вы создаете источник данных с использованием одного из этих типов данных, доступные процедуры перечисляются в разделе «Хранимые процедуры», как показано в примере Microsoft SQL Server:

Из левой панели перетащите процедуру на холст или дважды щелкните одну из перечисленных процедур.Если параметры доступны в процедуре, автоматически отображается диалоговое окно «Параметры».

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

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

Хранимые процедуры не поддерживают федерацию, связь или присоединение.Они представлены в единой логической таблице на логическом уровне и не позволяют открывать холст Join / Union (физический уровень).

Примечания к хранимым процедурам

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

  • Если хранимая процедура возвращает более одного набора результатов, Tableau читает первый и игнорирует остальные.

  • Если хранимая процедура имеет выходные параметры, Tableau отфильтровывает хранимую процедуру.

  • Исключаются хранимые процедуры с параметрами нескалярного типа.

  • Регистрируются столбцы набора результатов, для которых в Таблице нет соответствующих типов (например, varbinary, geometry иierarchyid). Если все столбцы набора результатов соответствуют неизвестным типам данных, Tableau отображает сообщение:

    «Набор результатов… не имеет столбцов, которые можно использовать. «

  • Хранимые процедуры, которые не возвращают наборы результатов, перечислены на странице источника данных, но не будут выполнены, если выбраны.

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

  • Tableau не выполняет никакого управления транзакциями для хранимых процедур. То есть создатели хранимых процедур не должны зависеть от Tableau для запуска транзакций перед вызовом хранимых процедур или для их фиксации после.

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

  • Если в хранимой процедуре есть несколько запросов (например, для чтения значений из другой таблицы или для хранения временных комбинаций), каждый из запросов должен возвращать одни и те же наборы столбцов в том же порядке (одинаковые имена и типы данных). Чтобы гарантировать совпадение порядка и имен столбцов в результатах запроса, вам может потребоваться явно указать CAST , чтобы убедиться, что тип данных правильный, например CAST (имя пользователя как VARCHAR (20)) , и явно назвать столбцы.Если хранимая процедура не соответствует этим рекомендациям, может появиться сообщение об ошибке:

    «InsertData: ошибка несвязанного столбца»

  • Если в хранимой процедуре есть несколько запросов (например, для чтения значений из другой таблицы или для хранения временных комбинаций) и процедура генерирует ошибку, попробуйте добавить SET NOCOUNT ON в начало процедуры.Это предотвращает возврат сообщения, показывающего количество строк, затронутых оператором Transact-SQL, как часть набора результатов для запроса.

Кроме того, для определенных баз данных применяются следующие ограничения.

Ограничения хранимых процедур для баз данных Teradata

Следующие ограничения применяются к хранимым процедурам в базах данных Teradata.

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

Ограничения хранимых процедур для баз данных SQL Server

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

  • Если набор результатов для хранимой процедуры содержит столбцы типа IMAGE или TEXT, хранимая процедура завершится ошибкой с сообщением об ошибке «Неверный синтаксис».

  • Если общая ширина набора результатов (количество байтов в каждой строке) превышает 8060, хранимая процедура завершается ошибкой. Это может происходить с очень широкими таблицами (сотни столбцов) или с таблицами с большими текстовыми столбцами, предназначенными для хранения тысяч символов текста.

  • Tableau не отображает хранимые процедуры из схемы «sys».

  • Если пользователь не предоставляет значение для одного или нескольких параметров, которые требуются для процедуры, Tableau отображает ошибку базы данных SQL Server в форме «Процедуре требуется значение для параметра @x, но оно не было предоставлено».

  • Хранимые процедуры, содержащие несколько запросов, должны соответствовать рекомендациям, перечисленным в Примечаниях к хранимым процедурам (выше).

  • Tableau Desktop не поддерживает тип данных Microsoft SQL Server TIME. Когда поля этого типа включены в хранимую процедуру в базе данных Microsoft SQL Server, Tableau Desktop не будет их импортировать.

Ограничения хранимых процедур для баз данных SAP Sybase ASE

Следующие ограничения применяются к хранимым процедурам в базах данных SAP Sybase ASE (только для Windows).

  • База данных должна иметь правильно настроенный удаленный сервер.

  • Если пользователь не предоставляет значение для одного или нескольких параметров, требуемых для процедуры, Tableau отображает ошибку базы данных Sybase ASE в форме «Процедуре требуется значение для параметра @x, но оно не было предоставлено».