Как открыть ип по упрощенке: Как открыть ИП в 2021 году пошаговая инструкция для начинающих

Содержание

Как зарегистрировать ИП в режиме онлайн

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

1 января 2017 года в Казахстане упростили регистрацию ИП, порядок преобразовался из заявительного в уведомительный.

Физическим лицам достаточно уведомить налоговый орган о начале предпринимательской деятельности. Уведомление дает возможность заниматься бизнесом уже с момента направления и само по себе является подтверждением наличия регистрации в качестве ИП, данная услуга оказывается бесплатно на портале «электронного лицензирования» еlicense.kz.

Процедура регистрации ИП онлайн

Для отправки уведомления о начале предпринимательской деятельности, необходимо пройти регистрацию на портале elicense.kz (инструкция в формате PDF).

После регистрации на портале elicense.kz, перейдите на страницу услуги «Уведомление о начале деятельности в качестве индивидуального предпринимателя».

Данная ссылка находится в списке популярных услуг в правом блоке главной страницы портала elicense.kz, а также в разделе «Бизнесу → Регистрация и развитие бизнеса → Регистрация и ликвидация бизнеса» на портале eGov.kz.

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

                             

Далее, после выбора налогового органа, в открывшемся окне нужно заполнить поля заявления. Если вы авторизуетесь с помощью ЭЦП, то большинство из них заполнятся автоматически.

                             

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

                                    

После нажатия на «Далее» откроется окно с полями, где нужно указать реквизиты и параметры вашего будущего предприятия – адрес, наименование, вид деятельности (ОКЭД), форму налогообложения и т.д.

                                    

Сформированный запрос подписывается ЭЦП, после чего в течение 1 рабочего дня вы получите уведомление в разделе «Мои извещения». Так происходит процедура регистрации ИП в электронном виде.

Чтобы узнать больше об «индивидуальном предпринимательстве» и о том, кто является субъектом ИП, каковы условия его функционирования, рекомендуем ознакомиться с отдельным полезным материалом.

 

Что делать после регистрации ИП?|Первые шаги после регистрации ИП


Доброго времени суток! В прошлой статье я уже рассмотрел вопрос о том как пройти регистрацию в качестве индивидуального предпринимателя , теперь встает закономерный вопрос "А что дальше ?", какие шаги должен сделать ИП после своей регистрации в налоговой ?

Давайте рассмотрим несколько основных и важных шагов которые должен сделать после своей регистрации каждый ИП.

Действия ИП после регистрации в ИФНС

Порядок действий будет зависеть от некоторых факторов, разберем их:

Регистрация в ПФР и ФСС

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

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

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

Относительно ФСС  (фонд социального страхования) ситуация аналогичная, если у Вас нет работников, то Вы не становитесь на учет.

В случае если Вы берете на работу людей, то так же необходимо встать на учет ФСС как работодатель (на это отводится 10 дней с момента заключения трудового договора с человеком).

Выбрать систему налогообложения ИП

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

ИП в своей деятельности может пользоваться следующими системами налогообложения:

ОСНО, ЕНВД , ПСН, УСН, ЕСХН. Более подробно о системах налогообложения ИП Вы можете ознакомиться в рубрике "Налогообложение для бизнеса".

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

Из перечисленного списка нас интересует налог УСН, дело в том что по закону отводится всего 30 дней с момента регистрации для того чтобы встать на данное налогообложение.

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

Так что если Вы решили что будете работать на налоге УСН, то тогда Вам после регистрации ИП необходимо в течении 30 дней сдать в налоговую уведомление о переходе на налог УСН по форме №26.2-1

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

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

74436115 на странице активации подарка.

Заказать изготовление печати

Сразу оговорюсь: Индивидуальный предприниматель по закону имеет полное право работать без печати ( в таких случаях на месте печати просто ставят б/п, что расшифровывается как БЕЗ ПЕЧАТИ).

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

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

Письмо из отдела статистики

После своей регистрации ИП должен посетить так называемый ОТДЕЛ СТАТИСТИКИ и получить там на свое ИП письмо со всеми статистическими данными и кодами.

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

Открыть расчетный счет в банке

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

Допустим если Вы просто оказываете услуги частным гражданам, то расчетный счет просто ни к чему.

В случае если Вы оказывая услуги планируете работать с организациями, а так же при торговле и производстве РАСЧЕТНЫЙ СЧЕТ ПРОСТО НЕОБХОДИМ.

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

Уведомлять об открытии расчетного счета предприниматель никого не должен. Банки самостоятельно оповещают ИФНС и ПФР.

Приобретение и постановка на учет  кассового аппарата

В зависимости от того какую систему налогообложения Вы выберете может потребоваться приобретение ККТ (контрольно-кассовой техники).

ККТ нужен только при торговле на налогах УСН,  ОСНО и ЕСХН. В случае если Вы используете один из перечисленных видов налогообложения, то приобретайте и ставьте на учет кассовый аппарат.

Постановка кассового аппарата на учет происходит в ИФНС где предприниматель открыл свое ИП.

Регистрация ИП в Роспотребнадзоре Для некоторых видов деятельности предприниматель перед тем как начать ими заниматься должен подготовить и сдать комплект документов в Роспотребнадзор. Подробнее в статье "Регистрация ИП в Роспотребнадзоре".

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

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

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

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

На этом все! Удачного бизнеса и пока!

пошаговая инструкция, что нужно, сколько стоит — Жиза

Законы

Я и мой друг регистрировали ИП. Я живу и прописан в Тюмени, поэтому подавал документы в налоговую лично. Кирилл тоже живет в Тюмени, но прописан в Ханты-Мансийске. Чтобы не отпрашиваться с работы и не мотаться домой, он открыл ИП удаленно через «Госуслуги». Рассказываю про оба варианта: как открыться, какие документы нужны, сколько времени и денег потратите.

  • Автор: Женя Лепехин
  • Иллюстратор: Иван Might

Подготовьтесь к подаче документов

Сделайте копию или сканы паспорта

Для регистрации ИП нужен паспорт РФ или национальный паспорт вашей страны, если вы иностранец.

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

Выберите ОКВЭДы

ОКВЭД — общероссийский классификатор видов экономической деятельности. Он нужен, чтобы государство видело, чем вы занимаетесь. Каждый код обозначает определенный вид деятельности. Например, 70.10.2 — управление холдинг-компаниями, 74.30 — письменный и устный перевод, а 15.11.1 — выделка и крашение меха. Если вы открыли интернет-магазин без ОКВЭДа 52.61.2, вам сделают предупреждение или оштрафуют на 5000 ₽.

Выбрать ОКВЭДы лучше заранее: они пригодятся, когда будете заполнять заявление Р21001. Вы можете выбрать сколько угодно кодов, но всегда один будет основным, а остальные — дополнительными. Все коды есть в классификаторе.

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

Я редактор, код основной деятельности 90.03 — деятельность в области художественного творчества. К нему я подобрал 13 дополнительных кодов в сфере дизайна, перевода и маркетинга

Выберите систему налогообложения

У ИП есть несколько систем налогообложения. Самые распространенные — ОСНО и УСН.

ОСНО — общая система налогообложения. По ней ИП обязан платить НДС — 18%, НДФЛ — 13%, и налог на имущество — до 2,2%.

УСН — упрощенная система налогообложения. По ней предприниматель платит только один налог: 6% от доходов или от 5 до 15% от разницы между доходами и расходами.

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

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

Как заполнить заявление о переходе на упрощенку

  1. Скачайте форму 26.2-1 в формате PDF и заполните по образцу.
  2. В полях ИНН и КПП поставьте прочерки (дефисы).
  3. Узнайте код вашей налоговой на сайте — он состоит из четырех цифр.
  4. В поле «Признак налогоплательщика» поставьте цифру «1».
  5. Укажите фамилию, имя и отчество. Во все пустые клетки поставьте прочерки (дефисы).
  6. Напротив пункта «переходит на упрощенную систему налогообложения» поставьте цифру «2». В следующей строке во всех полях поставьте прочерки, так как вы переходите на УСН с даты постановки на учет.
  7. Напротив пункта «в качестве налогообложения выбраны» поставьте цифру: «1» — доходы, «2» — «доходы минус расходы».
  8. Укажите год подачи заявления.
  9. Поставьте цифру «1» если подаете заявление сами, и цифру «2», если через представителя.
  10. Снова укажите фамилию, имя, отчество. В пустые клетки поставьте прочерки.
  11. Укажите номер телефона и дату подачи заявления. Подпись не ставьте, лучше сделать это в налоговой перед подачей.
  12. Поля в правом нижнем углу оставьте пустыми.

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

Оплатите госпошлину

Для регистрации ИП необходимо заплатить пошлину 800 ₽. Это можно сделать в любом банке или на сайте налоговой.

В банке потребуются реквизиты местной налоговой. Найти их можно на сайте ИФНС с помощью специальной формы. Для этого кликните на верхнее поле «Адрес».

В появившемся окне укажите адрес прописки. После заполнения нажмите «ОК».

Сервис определит номер отделения налоговой, к которому вы относитесь. Нажмите «Далее».

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

Если оплачиваете пошлину через интернет, платите на сайте налоговой:

  1. Заполните форму и обязательно укажите ИНН — без него не получится оплатить онлайн.
  2. В качестве способа оплаты выберите «Безналичный расчет». Откроется окно с банками и денежными сервисами.
  3. Выберите оплату через «Госуслуги».
  4. После оплаты на почту вам придет электронная квитанция с печатью. Распечатайте ее и сохраните.

Я оплатил госпошлину на сайте налоговой и распечатал дома на принтере. Идти в Сбербанк не обязательно

Выберите банк, в котором откроете расчетный счет

По закону ИП может работать без расчетного счета, но по факту без него не обойтись. Расчетный счет нужен для безналичных операций более 100 000 ₽, подключения онлайн-кассы, создания интернет-магазина.

Есть несколько банков, у которых основное направление — работа с предпринимателями: Альфа-Банк, Модульбанк, Тинькофф и Точка. Чтобы выбрать банк, сравните тарифы по основным параметрам.

  • Стоимость обслуживания счета в месяц. Обычно для новых ИП у банков есть специальные предложения и отдельные тарифы. Например, Тинькофф дает молодым ИП полгода бесплатного обслуживания, а Точка — три месяца. За это время вы можете оценить работу банка, понять, насколько вам подходят условия тарифа.
  • Количество или сумма снятий в месяц. Изучите свои привычки и поймите, как вы чаще рассчитываетесь: наличными или картой. Обычно на эконом-тарифах банки предлагают до 5 снятий в месяц бесплатно — этого вполне достаточно для начинающего предпринимателя.
  • Количество переводов другим ИП и юрлицам. Обычно за денежный перевод клиенту того же банка комиссии нет. Но если вы планируете оплачивать услуги предпринимателей, которые обслуживаются в других банках, изучите условия комиссии за переводы.
  • Процент за поступление средств. Некоторые банки берут комиссию не за вывод средств, а за поступления. В таком случае, оцените, сколько примерно денег будет поступать на ваш счет и какой процент придется отдать банку.
  • Комиссия за эквайринг. Если планируете принимать платежи по картам, ознакомьтесь с комиссией за эквайринг. Для розничной торговли нужен торговый эквайринг: в этом случае выгоднее выбрать пакет обслуживания с фиксированным платежом. Для интернет-магазинов подходят тарифы с комиссией за каждую операцию. Размер комиссии зависит от вида и источника операции.
  • Комиссия за валютные операции. Если работаете с зарубежными компаниями и получаете переводы из-за границы, изучите условия валютных переводов.
  • Документы в электронном виде. Это для тех, кто регистрировал ИП удаленно. Не все банки принимают документы в электронном виде. Например, Тинькофф и Точка принимают, а остальные — не факт. Уточните, в каком виде банк принимает документы для открытия расчетного счета.

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

Если живете в городе прописки — подайте документы лично

Самый быстрый способ открыть ИП — подать документы в налоговую лично. Для этого вы должны заполнить форму Р21001 и записаться в налоговую. Можно подать заявление и по интернету, но тогда вы потратите дополнительные 1000 ₽ на электронную подпись. Распечатать заявление и отнести его в налоговую — дешевле и быстрее.

Заполните заявление Р21001

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

Чтобы заполнить заявление через «Госуслуги»:

Скачайте заполненное заявление, распечатайте и возьмите в налоговую.

Если у вас плохой интернет, скачайте заявление в PDF или в XLS на компьютер и заполните по образцу.

Лист № 1

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

Лист № 2

Укажите текущий адрес регистрации. Четыре цифры серии паспорта разделите пробелами по две. Номер паспорта также отделите пустой клеткой.

Лист № 3

Укажите выбранные ОКВЭДы. Пишите номер каждого ОКВЭДа с первой клетки.

Лист № 4

Укажите почту и контактный номер телефона.

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

Чтобы записаться на сайте налоговой, перейдите в раздел «Онлайн-запись на прием в инспекцию» и заполните форму.

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

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

Получите выписку из ЕГРИП

Приняв документы, специалист налоговой назначит день, когда вы получите выписку из ЕГРИП — единого государственного реестра индивидуальных предпринимателей. Это лист формата А4, где перечислена вся информация о вашем ИП: фамилия, имя, отчество, основной государственный регистрационный номер (ОГРНИП), дата регистрации, адрес прописки, отделение налоговой для отчетности, виды деятельности.

До 1 января 2017 года еще выдавали свидетельство о постановке на налоговый учет. Вместо него вам дадут уведомление о постановке на учет в налоговом органе.

Так выглядит выписка из ЕГРИП

Уведомление о постановке на учет физического лица в налоговом органе — основной документ ИП. Он подтверждает, что вы легализовали свой бизнес

Если прописаны в другом городе — подайте документы удаленно

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

Сделайте электронную подпись

Электронную подпись для физических лиц можно заказать в СКБ Контур за 1000 ₽ на 1 год. Она пригодится не только для подачи документов, но и для подписания счетов, договоров и актов.

Чтобы получить электронную подпись, нужно отправить заявку. Вам пришлют бланк заявления. Заполните его, подпишите и отсканируйте. Вышлите сканы заявления, паспорта, СНИЛС и ИНН в ответном письме. После этого придите в ближайший пункт подтверждения электронных подписей. Список пунктов есть на сайте СКБ Контур. Через 2-3 дня получите электронную подпись. Уточните пин-код своей подписи, он понадобится для отправки документов в налоговую.

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

Заполните анкету на «Госуслугах»

Если у вас еще нет аккаунта на «Госуслугах», зарегистрируйтесь, заполните профиль и повысьте учетную запись до статуса «Подтвержденная».

Сервис сам cформирует заявление Р21001 и проверит данные.

Вставьте в ноутбук флешку с электронной подписью и нажмите кнопку «Подписать документы». После этого оплатите госпошлину тут же на сайте «Госуслуг» и отправьте документы в налоговую.

Получите электронные версии документов

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

Вывод

Зарегистрировать ИП можно двумя способами: лично и удаленно.

Если живете в городе прописки, подайте документы в налоговую лично.

  1. Документы можно подготовить за два-три часа.
  2. Придется потратить 800 ₽ на госпошлину и 20 ₽ на ксерокопию паспорта.
  3. Запишитесь в налоговую на удобное время. Можно даже в субботу. Придите вовремя и сдайте документы — это займет 10–15 минут.
  4. Заберите документы о регистрации из налоговой через 3 дня. Дату и время сообщают в день подачи.
  5. Откройте расчетный счет и начните работать.

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

  1. Вам не придется отпрашиваться с работы и тратить деньги на поезд или самолет.
  2. Потратите 560 ₽ на госпошлину и 1000 ₽ на электронную подпись.
  3. Отсканируйте все документы, переведите в формат .tiff и соедините в многостраничный документ.
  4. Сформируйте архив с документами, подпишите его электронной подписью и отправьте в налоговую.
  5. Подождите 3 дня и получите на электронную почту документы о регистрации ИП.
  6. Откройте расчетный счет и начните работать.

Опубликовали 26 октября 2018 года

Твитнуть

Поделиться

Поделиться

Отправить

Сколько стоит содержание ИП в 2020 году?

Государство говорит, что стоимость содержания ИП без наемных работников в 2020 году состоит из взносов в размере 40 874 ₽ и 6% годовых на «упрощенке». Однако мы с этим не согласны — и вот почему.

Помимо налогов и взносов в 2020 году ИП платит множество «поборов»: от дополнительного процента на пенсии в ПФР до пошлин таможенникам за покупку товаров для бизнеса из-за рубежа.

Обязательные расходы ИП в 2020 году

1. Взносы

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

  • 32 448 ₽ — на пенсии
  • 8 426 ₽ — на медицину
  • +1% от дохода >300 000 ₽ — дополнительно на пенсии

Если первые два платежа проходят через Федеральную налоговую службу, то третий — через Пенсионный фонд РФ. Итого годовая сумма обязательных взносов рассчитывается по формуле:

S = 32 448 + 8 426 + (Доходы – 300 000) x 1

Несложный расчет показывает, что при годовом доходе в 1 200 000 ₽ размер взносов ИП составит 49 874 ₽.

2. Налоги

Сумма уплаты налога зависит от выбранной системы налогообложения:

  • УСН 6% («Доходы») — упрощенная система, на которой ИП поквартально платит 6% со всех доходов. При доходе в районе 60 000 ₽ в месяц налог можно снизить вплоть до нуля, если вовремя вносить авансовые платежи:
Как это работает? ИП Михайлов заработал 840 000 ₽ за 2020 год. Сумма к уплате по УСН «Доходы» равняется 840 000 x 6% = 50 400 ₽. Но Михайлов может вычесть из нее сумму фиксированных взносов, так как он вносил авансы ежеквартально и точно в срок. В таком случае, сумма к уплате по налогам составит не 50 400 ₽, а всего 9 526 ₽ (50 400 – 32 448 – 8 426).
  • УСН 15% («Доходы минус расходы») — еще одна упрощенная система, на которой ИП платит 15% с разницы между доходами и расходами. Подходит тем, у кого высокие производственные расходы.
  • ПСН («Патент») — налоговый режим, на котором ИП платит стоимость патента. Она формируется как налоговая база, умноженная на ставку в процентах. Размер налоговой базы — теоретический, его определяют региональные законы для каждого вида деятельности.
  • ОСН («общая система») — самый затратный режим для крупных ИП, которые зарабатывают более 200 000 000 ₽ в год. ОСН сочетает несколько налогов: на прибыль (20%), НДС (20%), НДФЛ (0/10/13%), на имущество (до 2,2%).

Дополнительные затраты ИП в 2020 году

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

Расчетный счет

Стоимость обслуживания расчетного счета может быть нулевой, однако в договоре будет прописана комиссия за снятие наличных через банкомат или перевод на личный карточный счет — обычно 1%. То есть, если вы не платите банку за РКО, но снимаете каждый месяц 120 000 ₽, то комиссия составит 1200 ₽. Если «бесплатный сыр» вас не устраивает, всегда можно найти солидный банк с тарификацией РКО пределах 500-1500 ₽ в месяц.

Онлайн-касса

ИП подбирают кассовое оборудование под вид деятельности. Курьеру подойдет небольшая автономная касса за 9 000 ₽, тогда как общепиту нужен большой POS-терминал за 65 000 ₽. Кроме покупки онлайн-кассы необходимо заключить контракт с оператором фискальных данных — услуга стоит около 3000 ₽ в год за одно устройство.

Бухгалтерское обслуживание

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

Налоги за сотрудников

Зарплата каждого сотрудника ИП также облагается налогами и взносами:

  • 13% — НДФЛ
  • 22% — выплата на пенсионное страхование (ПФР)
  • 5,1% — выплата на медицинское страхование (ФОМС)
  • 2,9% — выплата на социальное страхование (ФСС)

Для некоторых бизнесменов с наемными сотрудниками в 2020 году предусмотрены льготы.

Что еще может понадобиться в первый год работы ИП?

Перед тем, как открыть дело, изучите нишу и узнайте, на что еще отложить деньги. Например:

  • Кафе и бары — покупают лицензию на алкоголь (65 000 ₽).
  • Строительные бригады — получают сертификаты ISO и допуски СРО.
  • Поставщики зарубежных товаров — платят таможенные пошлины.

Хотите экономить на налогах и взносах, получать льготы и субсидии? Закажите персональную консультацию бухгалтера «Дельта Финанс» по Skype, телефону или в офисе. Специалист с 15-летним опытом проконсультирует вас, поможет выбрать оптимальную систему налогообложения и зарегистрировать ИП с первого раза.

Может ли учредитель ТОО на упрощенке открыть ИП для сдачи квартиры в аренду?

В соответствии со статьёй 683 Кодекса Республики Казахстан «О налогах и других обязательных платежах в бюджет» (Налоговый кодекс) субъектами малого бизнеса признаются индивидуальные предприниматели и юридические лица-резиденты Республики Казахстан, применяющие специальный налоговый режим для субъектов малого бизнеса.

Специальный налоговый режим для субъектов малого бизнеса вправе применять налогоплательщики, соответствующие условиям, указанных в пункте 2 статьи 683 Налогового кодекса.  Согласно пункту 4 статьи 683 Налогового кодекса, не вправе применять специальный налоговый режим для субъектов малого бизнеса: 

1) юридические лица, имеющие структурные подразделения; 

2) структурные подразделения юридических лиц; 

3) налогоплательщики, имеющие иные обособленные структурные подразделения и (или) объекты налогообложения в разных населённых пунктах. 

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

Положение данного подпункта не распространяется на налогоплательщиков, осуществляющих исключительно деятельность по сдаче в имущественный наем (аренду) имущества; 

4) юридические лица, в которых доля участия других юридических лиц составляет более 25 процентов; 

5) юридические лица, у которых учредитель или участник одновременно является учредителем или участником другого юридического лица, применяющего специальный налоговый режим или особенности налогообложения; 

6) некоммерческие организации;  7) плательщики налога на игорный бизнес. 

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

Председатель Комитета
государственных доходов
Министерства финансов РК                                                    Султангазиев М.Е.

Источник: https://dialog.egov.kz/blogs/all-questions/624664

Хранимые процедуры 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

140002

CREATE TABLE Product

(ProductID INT, ProductName VARCHAR (100))

GO

CREATE TABLE ProductDescription

(ProductID INT, ProductDescription VARCHAR (800))

VARCHAR

VAL

ES

(680, 'HL Road Frame - Black, 58')

, (706, 'HL Road Frame - Red, 58')

, (707, 'Sport-100 Helmet, Red')

GO

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

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

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

GO

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

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

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

AS

НАЧАТЬ

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

SELECT 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

BEGIN

SET NOCOUNT ON

SELECT P.ProductID, P.ProductDesc_withparameters 9.ProductName 9.ProductName 9.ProductName 9.Product НА P.ProductID = PD.ProductID

ГДЕ [email protected]

END

EXEC GetProductDesc_withparameters 706

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

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

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

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

(@PID INT = 706)

AS

BEGIN

SET NOCOUNT ON

SELECT P. ProductDescription PD ON P.ProductID = PD.ProductID

ГДЕ [email protected]

END

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

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

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

CREATE TABLE Сотрудник (EmpID int identity (1,1), EmpName varchar (500))

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

(@Ename varchar (50),

@EId int output)

AS

BEGIN

SET NOCOUNT ON

Employee

IN

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

END

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

объявить @EmpID INT

EXEC ins_NewEmp_with_outputparamaters 'Andrew', @EmpID OUTPUT

SELECT @EmpID

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

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

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

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

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

КАК

НАЧАТЬ

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

SELECT EmpID, EmpName from Employee

END

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

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

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

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

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

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

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

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

AS

НАЧАЛО

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

КОНЕЦ

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

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

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

КАК

НАЧАЛО

ПЕЧАТЬ 'Процедура глобальной температуры'

КОНЕЦ

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

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

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

AS

НАЧАЛО

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

SELECT P.ProductID, P.ProductName, PD.ProductDescription FROM

PDProduct P. Код продукта

КОНЕЦ

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

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

sp_rename 'GetProductDesc', 'GetProductDesc_new'

Заключение

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

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

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

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

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

Модель

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

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

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

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

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

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

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

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

GO

СОЗДАТЬ ПРОЦЕДУРУ 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)

- процедура возвращает всю строку для данного идентификатора

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)

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

IN

IN

IN

customer_name, city_id, customer_address, next_call_date, ts_inserted)

ЗНАЧЕНИЯ (@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)

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

AS BEGIN

DELETE

FROM customer

WHERE id = @id;

КОНЕЦ;

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

EXEC p_customer_delete 6;

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

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

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

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

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

Заключение

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

Содержание

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

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

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

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

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

Хранимая процедура в SQL Server

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

  1. Что такое хранимая процедура в SQL?
  2. Почему мы используем SET NOCOUNT ON в хранимой процедуре?
  3. Сколько существует типов хранимых процедур?
  4. Как писать комментарии в SQL Server?
  5. Каковы соглашения об именах для хранимых процедур?
  6. Как создать хранимую процедуру для выбора данных из вкладки базы данных с помощью запроса SELECT SQL?
  7. Как выполнять хранимые процедуры в SQL Server?
  8. Что такое параметры в хранимых процедурах?
  9. Как создать параметры в хранимой процедуре запроса SELECT, которая возвращает записи в соответствии с переданным параметром?
  10. Как создать хранимую процедуру на основе запроса INSERT?
  11. Как создать хранимую процедуру на основе запроса UPDATE?
  12. Как создать хранимую процедуру для удаления записей с помощью запроса DELETE?

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

Хранимая процедура (SP) SQL - это набор операторов SQL и логики команд sql, которые компилируются и хранятся в базе данных.Сохраненные процедуры в SQL позволяют нам создавать SQL-запросы, которые будут храниться и выполняться на сервере. Сохраненные процедуры также можно кэшировать и использовать повторно. Основная цель хранимых процедур - скрыть прямые SQL-запросы от кода и повысить производительность таких операций с базой данных, как выбор, обновление и удаление данных.

Почему мы используем SET NOCOUNT ON в хранимой процедуре?

Хотя мы устанавливаем SET NOCOUNT ON, это означает, что нет сообщений, показывающих количество затронутых строк.

NOCOUNT означает не считать, что включено.

Теперь вы узнаете, что произошло, когда ВЫКЛ.

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

В SQL Server доступны два типа хранимых процедур:

  1. Пользовательские хранимые процедуры
  2. Системные хранимые процедуры

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

Определяемые пользователем хранимые процедуры создаются разработчиками или администраторами баз данных.Эти SP содержат еще один оператор SQL для выбора, обновления или удаления записей из таблиц базы данных. Определяемая пользователем хранимая процедура может принимать входные параметры и возвращать выходные параметры. Определяемая пользователем хранимая процедура представляет собой смесь команд DDL (язык определения данных) и DML (язык манипулирования данными).

Пользовательские SP подразделяются на два типа:

Хранимые процедуры T-SQL: SP T-SQL (Transact SQL) получают и возвращают параметры.Эти SP обрабатывают запросы Insert, Update и Delete с параметрами или без них и возвращают данные строк в качестве вывода. Это один из наиболее распространенных способов написания SP в SQL Server.

Хранимые процедуры CLR: CLR (Common Language Runtime) SP написаны на языке программирования на основе CLR, таком как C # или VB.NET, и выполняются .NET Framework.

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

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

Вход в базу данных SQL Server

Давайте войдем в нашу базу данных SQL Server, чтобы получить следующее:

  • Как создать хранимую процедуру на основе SELECT QUERY, которая возвращает все записи?
  • Как создать хранимую процедуру SELECT QUERY на основе ПАРАМЕТРОВ, которая возвращает записи на основе параметров?
  • Как создать хранимую процедуру на основе запроса INSERT?
  • Как создать хранимую процедуру на основе запроса UPDATE?
  • Как создать хранимую процедуру на основе запроса DELETE?

Войдите в SQL SERVER с вашим именем сервера, логином и паролем.

Переключитесь на вашу базу данных. Имя моей базы данных - MBKTest.

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

Пустой шаблон, созданный SQL Server для SP, выглядит следующим образом. SQL-команда CREATE PROCEDURE используется для создания процедуры, за которой следует имя SP и его параметры. Области BEGIN и END используются для определения запроса операции.Здесь вы будете писать запросы на выбор, обновление, вставку или удаление.

  1. УСТАНОВИТЬ ANSI_NULLS НА
  2. GO
  3. УСТАНОВИТЬ QUOTED_IDENTIFIER НА
  4. GO
  5. СОЗДАТЬ ПРОЦЕДУРУ <имя_процедуры, системное имя, имя_процедуры>
  6. <@ Param1, sysname, @ p1> = ,
  7. <@ Param2, sysname, @ p2> =
  8. КАК
  9. НАЧАТЬ
  10. УСТАНОВИТЬ БЕЗ СЧЕТА;
  11. ВЫБЕРИТЕ <@ Param1, sysname, @ p1>, <@ Param2, sysname, @ p2>
  12. КОНЕЦ
  13. GO

Как писать комментарии в SQL SERVER?

Вы можете комментировать в sql server следующими способами:

  1. - (два дефиса / тире) для одной строки комментария.
  2. начинается с / * ……. заканчиваться * / для многострочных комментариев.

Каковы правила именования хранимых процедур?

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

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

  1. SP
  2. стп
  3. stp_
  4. udstp
  5. udstp_

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

Создать таблицу базы данных

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

  1. ИСПОЛЬЗОВАТЬ [MBKTest]
  2. GO
  3. / ****** Объект: Таблица [dbo]. [TblMembers] Дата сценария: 18 ноября 17, сб 18:47:55 ****** /
  4. УСТАНОВИТЬ ANSI_NULLS НА
  5. GO
  6. УСТАНОВИТЬ QUOTED_IDENTIFIER НА
  7. GO
  8. УСТАНОВИТЬ ANSI_PADDING НА
  9. GO
  10. СОЗДАТЬ ТАБЛИЦУ [dbo]. [TblMembers] (
  11. [MemberID] [int] IDENTITY (1,1) NOT NULL,
  12. [MemberName] [varchar] (50) NULL,
  13. [MemberCity] [varchar] (25) NULL,
  14. [MemberPhone] [varchar] (15) NULL
  15. )
  16. GO
  17. ВЫКЛЮЧИТЬ ANSI_PADDING
  18. GO

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

Щелкните свою базу данных и разверните элемент «Программируемость» и щелкните правой кнопкой мыши «Хранимые процедуры» или нажмите CTRL + N, чтобы открыть новое окно запроса.В области запроса между BEGIN и END введите оператор SELECT, чтобы выбрать записи из таблицы. См. Оператор Select в приведенном ниже коде.

  1. УСТАНОВИТЬ ANSI_NULLS НА
  2. GO
  3. УСТАНОВИТЬ QUOTED_IDENTIFIER НА
  4. GO
  5. СОЗДАТЬ ПРОЦЕДУРУ stpGetAllMembers
  6. КАК
  7. НАЧАТЬ
  8. УСТАНОВИТЬ БЕЗ СЧЕТА;
  9. Выбрать * из tblMembers
  10. КОНЕЦ
  11. GO

Теперь нажмите F5 или нажмите кнопку «Выполнить», чтобы выполнить SP.

Вы должны увидеть сообщение «Команды успешно выполнены».

Теперь перейдите в «Программируемость» -> «Хранимые процедуры», щелкните правой кнопкой мыши и выберите «Обновить».

На следующем изображении вы можете видеть, что создается новый SP с именем stpGetAllMembers.

Выполнение хранимых процедур в SQL Server

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

Кроме того, вы также можете выполнить SP из окна запроса.

Чтобы запустить хранимую процедуру в SQL Server Management Studio, переключитесь в окно запроса или CTRL + N, чтобы открыть новое окно запроса, и введите следующую команду.

  • Синтаксис - EXEC <имя хранимой процедуры>
  • Пример - EXEC stpGetAllMembers

Теперь мы запускаем нашу хранимую процедуру под названием stpGetAllMembers.Результат выглядит следующим образом:

ВЫХОД

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

Параметры в SP используются для передачи входных значений и возврата выходных значений. Есть два типа параметров:

  1. Входные параметры - передача значений в хранимую процедуру.
  2. Выходные параметры - возвращаемые значения из хранимой процедуры.

Как создать СП запроса SELECT с параметрами?

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

Вот обновленный SP с параметром @CityName.

  1. УСТАНОВИТЬ ANSI_NULLS НА
  2. GO
  3. УСТАНОВИТЬ QUOTED_IDENTIFIER НА
  4. GO
  5. СОЗДАТЬ ПРОЦЕДУРУ stpGetMembersByCityName
  6. @CityName nvarchar (30)
  7. КАК
  8. НАЧАТЬ
  9. УСТАНОВИТЬ БЕЗ СЧЕТА;
  10. Выбрать * Из tblMembers
  11. , где MemberCity вроде '%' + @ CityName + '%'
  12. КОНЕЦ
  13. GO

Выполнить.

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

EXEC GetMemberByCityName @CityName = 'mal'

ИЛИ из пользовательского интерфейса запустите SP и введите следующие данные.

Код для выполнения выглядит следующим образом:

  1. ИСПОЛЬЗОВАТЬ [MBKTest]
  2. GO
  3. ОБЪЯВИТЬ @return_value int
  4. EXEC @return_value = [dbo].[GetMemberByCityName]
  5. @CityName = N'mal '
  6. SELECT 'Возвращаемое значение' = @return_value
  7. GO

ВЫХОД

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

Мы можем использовать запрос INSERT INTO SQL для вставки данных в таблицу. Следующий оператор SQL создает INSERT SP с тремя параметрами.

  1. УСТАНОВИТЬ ANSI_NULLS НА
  2. GO
  3. УСТАНОВИТЬ QUOTED_IDENTIFIER НА
  4. GO
  5. СОЗДАТЬ ПРОЦЕДУРУ stpInsertMember
  6. @MemberName varchar (50),
  7. @MemberCity varchar (25),
  8. @MemberPhone varchar (15)
  9. КАК
  10. НАЧАТЬ
  11. УСТАНОВИТЬ БЕЗ СЧЕТА;
  12. Вставить в tblMembers (MemberName, MemberCity, MemberPhone)
  13. Значения
  14. (@ MemberName, @ MemberCity, @MemberPhone)
  15. КОНЕЦ
  16. GO

Щелкните правой кнопкой мыши хранимую процедуру в обозревателе объектов и выберите «Обновить».

Передайте значение параметра в диалоговом окне «Выполнить». Примерно так:

Следующий код можно использовать для выполнения этого SP в SSMS.

  1. ИСПОЛЬЗОВАТЬ [MBKTest]
  2. GO
  3. ОБЪЯВИТЬ @return_value int
  4. EXEC @return_value = [dbo]. [StpInsertMember]
  5. @MemberName = N'Mahesh Chand ',
  6. @MemberCity = N'NewYork ',
  7. @MemberPhone = N'9999945121 '
  8. SELECT 'Возвращаемое значение' = @return_value
  9. GO

ВЫХОД

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

Вы также можете запустить тот же SP в коде.

EXEC stpInsertMember @MemberName = 'Suhana & Ashish Kalla', @MemberCity = 'Mumbai', @MemberPhone = N'

92774xxx '

ВЫХОД

Вы можете проверить, что запись «Сухана и Ашиш Калла» успешно добавлена.

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

Давайте создадим новый SP, который будет обновлять записи таблицы на основе столбца идентификатора участника.Идентификатор передается как входной параметр. Вот новый SP, который использует команду UPDATE..SET..WHERE.

  1. УСТАНОВИТЬ ANSI_NULLS НА
  2. GO
  3. УСТАНОВИТЬ QUOTED_IDENTIFIER НА
  4. GO
  5. СОЗДАТЬ ПРОЦЕДУРУ stpUpdateMemberByID
  6. @MemberID int,
  7. @MemberName varchar (50),
  8. @MemberCity varchar (25),
  9. @MemberPhone varchar (15)
  10. КАК
  11. НАЧАТЬ
  12. УСТАНОВИТЬ БЕЗ СЧЕТА;
  13. ОБНОВЛЕНИЕ tblMembers
  14. Установить MemberName = @MemberName,
  15. MemberCity = @MemberCity,
  16. MemberPhone = @MemberPhone
  17. Где MemberID = @MemberID
  18. КОНЕЦ
  19. GO

Щелкните правой кнопкой мыши хранимую процедуру в обозревателе объектов и выберите «Обновить».Вы увидите, что SP создан.

Теперь щелкните правой кнопкой мыши имя SP и выберите «Выполнить хранимую процедуру…». Введите входные значения и выполните.

Мы можем использовать следующую команду в SSMS.

  1. ИСПОЛЬЗОВАТЬ [MBKTest]
  2. GO
  3. ОБЪЯВИТЬ @return_value int
  4. EXEC @return_value = [dbo]. [StpUpdateMemberByID]
  5. @MemberID = 20,
  6. @MemberName = Н'Нирупама Калла ',
  7. @MemberCity = N'Mumbai ',
  8. @MemberPhone = N'2541xxxx '
  9. SELECT 'Возвращаемое значение' = @return_value
  10. GO

EXEC stpUpdateMemberByID 17, 'Gopal Madhavrai', 'Bikaner', '

564xxx'

Результаты должны показать вам обновленные значения.

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

Давайте создадим SP, который будет удалять записи. Новый SP использует команду DELETE и удаляет все записи, соответствующие указанному идентификатору участника.

  1. УСТАНОВИТЬ ANSI_NULLS НА
  2. GO
  3. УСТАНОВИТЬ QUOTED_IDENTIFIER НА
  4. GO
  5. СОЗДАТЬ ПРОЦЕДУРУ stpDeleteMemberByMemberID
  6. @MemberID int
  7. КАК
  8. НАЧАТЬ
  9. УСТАНОВИТЬ БЕЗ СЧЕТА;
  10. Удалить из tblMembers
  11. , где MemberId = @MemberID
  12. КОНЕЦ
  13. GO

Выполнить.

Щелкните правой кнопкой мыши «Хранимые процедуры» в проводнике объектов и выберите «Обновить».

ЗАПУСТИТЬ хранимую процедуру BY UI

Теперь снова щелкните правой кнопкой мыши по хранимой процедуре и выберите «Выполнить хранимую процедуру…».

Как вы можете видеть на изображении, я передал значение параметра @MemberID = 4.

ВЫПОЛНИТЬ УДАЛЕНИЕ хранимой процедуры ВРУЧНУЮ (КОДИРОВКА)

EXEC stpDeleteMemberByMemberID 2

ВЫХОД

Вы можете видеть на изображении MemberID = 4 запись была успешно удалена.

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

Базовое руководство по хранимым процедурам SQL Server

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

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

Следующий оператор SELECT возвращает список продуктов из таблицы продукты в базе данных образца BikeStores:

 

SELECT наименование товара, список цен ИЗ производство.продукты СОРТИРОВАТЬ ПО наименование товара;

Язык кода: SQL (язык структурированных запросов) (sql)

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

 

CREATE PROCEDURE uspProductList В КАЧЕСТВЕ НАЧИНАТЬ ВЫБРАТЬ наименование товара, список цен ИЗ production.products СОРТИРОВАТЬ ПО наименование товара; КОНЕЦ;

Язык кода: SQL (язык структурированных запросов) (sql)

В этом синтаксисе:

  • uspProductList - это имя хранимой процедуры.
  • Ключевое слово AS разделяет заголовок и тело хранимой процедуры.
  • Если хранимая процедура имеет один оператор, ключевые слова BEGIN и END , окружающие этот оператор, являются необязательными. Однако рекомендуется включать их, чтобы прояснить код.

Обратите внимание, что в дополнение к ключевым словам CREATE PROCEDURE вы можете использовать ключевые слова CREATE PROC , чтобы сделать оператор короче.

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

Если все правильно, вы увидите следующее сообщение:

 

Команды успешно выполнены .

Язык кода: SQL (язык структурированных запросов) (sql)

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

Вы можете найти хранимую процедуру в обозревателе объектов, в разделе «Программируемость »> «Хранимые процедуры », как показано на следующем рисунке:

Иногда необходимо нажать кнопку « Обновить », чтобы вручную обновить объекты базы данных в обозревателе объектов. .

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

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

 

EXECUTE sp_name;

Язык кода: SQL (язык структурированных запросов) (sql)

Или

 

EXEC sp_name;

Язык кода: SQL (язык структурированных запросов) (sql)

, где sp_name - это имя хранимой процедуры, которую вы хотите выполнить.

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

 

EXEC uspProductList;

Язык кода: SQL (язык структурированных запросов) (sql)

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

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

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

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

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

 

ИЗМЕНЕНИЕ ПРОЦЕДУРЫ uspProductList В КАЧЕСТВЕ НАЧИНАТЬ ВЫБРАТЬ наименование товара, список цен ИЗ производство.продукты СОРТИРОВАТЬ ПО список цен КОНЕЦ;

Язык кода: SQL (язык структурированных запросов) (sql)

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

 

Команды выполнены успешно.

Язык кода: SQL (язык структурированных запросов) (sql)

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

 

EXEC uspProductList;

Язык кода: SQL (язык структурированных запросов) (sql)

Ниже показан частичный вывод:

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

Для удаления хранимой процедуры используйте DROP PROCEDURE или DROP PROC Оператор :

 

ПРОЦЕДУРА DROP sp_name;

Язык кода: SQL (язык структурированных запросов) (sql)

или

 

DROP PROC sp_name;

Язык кода: SQL (язык структурированных запросов) (sql)

, где sp_name - это имя хранимой процедуры, которую вы хотите удалить.

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

 

DROP PROCEDURE uspProductList;

Язык кода: SQL (язык структурированных запросов) (sql)

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

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


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

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

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

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

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

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

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


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

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

Идентификатор клиента Имя клиента ContactName Адрес Город Почтовый индекс Страна
1 Альфредс Футтеркисте Мария Андерс Обере, ул.57 Берлин 12209 Германия
2 Ana Trujillo Emparedados y helados Ана Трухильо Avda. de la Constitución 2222 México D.F. 05021 Мексика
3 Антонио Морено Такерия Антонио Морено Матадерос 2312 México D.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 = @City AND PostalCode = @PostalCode
GO;

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

Пример

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



Использование курсора в хранимой процедуре SQL Server с примером

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

Курсор поддерживается во всех версиях SQL Server, то есть 2000, 2005, 2008, 2008 R2, 2012 и 2014.

База данных

Я использовал следующую таблицу Customers со следующей схемой.

Я уже вставил несколько записей в таблицу.

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

Что такое курсоры в SQL Server?

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

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

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

Каков синтаксис для написания курсоров в SQL Server?

Ниже приведен синтаксис для написания курсора. Самое первое - объявить некоторые переменные на основе столбцов, которые вы извлекаете в своем запросе выбора.

Примечание : В этой статье я рассматриваю только курсоры READ_ONLY.

Затем вам нужно объявить курсор, присвоив ему имя и установив его тип как READ_ONLY, а вместе с ключевым словом FOR вам нужно написать запрос выбора, который вернет записи, которые вам нужно обработать.

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

Каждый раз, когда выбирается запись, @@ FETCH_STATUS имеет значение 0, и как только все записи, возвращаемые запросом выбора, выбираются, его значение изменяется на -1.

Курсор связан с WHILE LOOP, который выполняется до тех пор, пока @@ FETCH_STATUS не будет иметь значение 0.

Внутри WHILE LOOP обработка выполняется для текущей записи, затем снова выбирается следующая запись, и этот процесс продолжается до тех пор, пока @@ FETCH_STATUS не станет 0.

Наконец, курсор закрывается и освобождается с помощью команд CLOSE и DEALLOCATE соответственно.

Примечание : очень важно ОТКЛЮЧИТЬ курсор, иначе он останется в базе данных, и когда вы снова объявите курсор с тем же именем, SQL Server выдаст ошибку: Курсор с именем «Cursor1» уже существует.

Как писать и использовать курсоры в SQL Server Хранимая процедура?

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

УСТАНОВИТЕ ANSI_NULLS НА

GO

УСТАНОВИТЬ QUOTED_IDENTIFIER НА

GO

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

AS

НАЧАТЬ

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

--ОБЪЯВИТЕ ПЕРЕМЕННЫЕ ДЛЯ УДЕРЖАНИЯ ДАННЫХ.

ОБЪЯВИТЬ @CustomerId INT

, @ Имя VARCHAR (100)

, @ Страна VARCHAR (100)

- ЗАЯВИТЬ И УСТАНОВИТЬ СЧЕТЧИК.

ЗАЯВИТЬ @Counter INT

НАБОР @Counter = 1

--ОЗНАКОМЬТЕСЬ С КУРСОРОМ ДЛЯ ЗАПРОСА.

ОБЪЯВИТЬ PrintCustomers CURSOR READ_ONLY

ДЛЯ

ВЫБЕРИТЕ CustomerId, имя, страну

ОТ Заказчиков

- ОТКРЫТЬ КУРСОР.

ОТКРЫТЬ РаспечататьКлиенты

- ПОЛУЧИТЬ ЗАПИСЬ В ПЕРЕМЕННЫЕ.

ПОЛУЧИТЕ СЛЕДУЮЩИЙ ОТ PrintCustomers В

@CustomerId, @Name, @Country

--ПРОБУЙТЕ, ПОКА ДОСТУПНЫ ЗАПИСИ.

WHILE @@ FETCH_STATUS = 0

НАЧАТЬ

ЕСЛИ @Counter = 1

НАЧАТЬ

ВЫПЕЧАТАЙТЕ «ИД клиента» + СИМВОЛ (9) + «Имя» + СИМВОЛ (9) + СИМВОЛ (9) + СИМВОЛ (9) + «Страна»

ПЕЧАТЬ '------------------------------------'

КОНЕЦ

--ПЕЧАТАТЬ ТЕКУЩУЮ ЗАПИСЬ.

ПЕЧАТЬ CAST (@CustomerId AS VARCHAR (10)) + CHAR (9) + CHAR (9) + CHAR (9) + @Name + CHAR (9) + @Country

- СЧЕТЧИК ИНФОРМАЦИИ.

НАБОР @Counter = @Counter + 1

- ПОЛУЧИТЬ СЛЕДУЮЩУЮ ЗАПИСЬ В ПЕРЕМЕННЫЕ.

ПОЛУЧИТЕ СЛЕДУЮЩИЙ ОТ PrintCustomers В

@CustomerId, @Name, @Country

КОНЕЦ

- ЗАКРЫТЬ КУРСОР.

ЗАКРЫТЬ РаспечататьКлиенты

РАЗРЕШИТЬ PrintCustomers

КОНЕЦ

GO

На следующем снимке экрана показаны записи, напечатанные указанным выше курсором.

Недостатки курсора

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

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

Загрузки

Как использовать хранимые процедуры в VB6

Введение

В этой статье объясняется, как использовать хранимую процедуру в Visual Basic 6.0 с помощью объектов данных Microsoft ActiveX (ADO). Я попытался сделать это простым и думаю, что это может быть полезно для тех, кто хочет попробовать хранимые процедуры в приложениях VB6.Здесь я объясню:

  • Шаги для написания небольшой хранимой процедуры (в SQL Server 2000)
  • Как использовать эту хранимую процедуру в VB 6.0
  • Использование параметров вывода в хранимых процедурах

Объекты данных ActiveX (ADO)

Объекты данных ActiveX

предоставляют набор объектов, свойств и методов для приложений, которые обращаются к данным и манипулируют ими. Обычно используются объекты ADO: Connection , Command и Recordset .

Объект подключения

Соединение Объект устанавливает соединение с источником данных. Чтобы создать объект Connection , нам нужно указать имя источника данных ODBC или поставщика OLE DB.

Командный объект

Объект Command - это определение конкретной команды, которую мы собираемся выполнить для источника данных.

CommandType Свойство используется для указания типа используемой команды.Пример включает:

  • adCmdText - Используйте, если строка запроса является командой SQL
  • adCmdTable - Используйте, если строка запроса является именем имени таблицы
  • adCmdStoredProc - Используйте, если строка запроса является именем сохраненного процедура
Объект набора записей

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

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

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

Пример

В SQL Enterprise Manager разверните базу данных Northwind , щелкните правой кнопкой мыши хранимые процедуры и выберите Новые хранимые процедуры , затем запишите следующий пример и нажмите кнопку ОК.

СОЗДАТЬ ПРОЦЕДУРУ empdetails @empid int
В КАЧЕСТВЕ
ВЫБЕРИТЕ имя, должность, адрес ОТ сотрудников, ГДЕ EmployeeID = @ empid

GO 

В опции Tools выберите SQL Query Analyzer и протестируйте хранимую процедуру, как показано ниже:

exec empdetails 1 

Здесь exec - это команда для выполнения хранимой процедуры, empdetails, - имя процедуры, а 1 - идентификатор сотрудника.Выполните процедуру (F5), вы увидите отображаемую запись.

Использование хранимой процедуры в Visual Basic 6 (пример)

  1. Создайте новый проект в Visual Basic.
  2. В форме разместите следующие элементы управления в порядке, показанном на рисунке:
  • Три метки (имя, заголовок, адрес)
  • Четыре текстовых поля ( txt_empid , txt_firstname , txt_title , txt_address )
  • Кнопка One Command ( name = cmd_get , Caption = Get )

  • В меню Project щелкните Ссылки и выберите Объекты данных Microsoft ActiveX 2.5 Библиотека и щелкните ОК .
  • В разделе Общая декларация (щелкните в верхней части окна кода) введите следующий код:
    Вариант Явный
    Dim con как новый ADODB.Connection
    Dim rs как новый ADODB.Recordset
    Dim cmd как ADODB.Command
    Dim str_empid, strconnect как строка 

    Здесь Option Explicit заставляет вас объявить все переменные, которые используются в программе (хорошая практика программирования), con - объект соединения, rs - объект набора записей, cmd - используемый объект команды для указания типа команды и имени процедуры str_empid используется для хранения идентификатора сотрудника и strconnect для хранения строки подключения.

  • В событии загрузки формы ( Form_Load ) введите следующее:
    Личная подписка Form_Load ()
        strconnect = "Provider = SQLOLEDB; Data Source = suj; Initial Catalog = Northwind"
        con.Open strconnect, "sa", ""
    Концевой переводник 

    Здесь SQLOLEDB - поставщик базы данных, suj - имя системы или компьютера (в вашем случае будет другим) и Northwind - имя базы данных, strconnect - строка подключения, sa - имя пользователя и пароль равен нулю (он будет таким же, как указано выше, если вы его не изменили). con.Open открывает соединение с базой данных.

  • В событии нажатия кнопки Command ( cmd_get_Click ) введите следующее:
    Частная подпрограмма cmd_get_Click ()
    
     str_empid = txt_empid.Text
    
     Установите cmd = New ADODB.Command.
     cmd.ActiveConnection = con
     cmd.CommandType = adCmdStoredProc
     cmd.CommandText = "empdetails"
    
     cmd.Parameters.Append cmd.CreateParameter_
    ("empid", adVarChar, adParamInput, 6, str_empid)
    
     Установите rs = cmd.Выполнять
    
     Если не rs.EOF, то
      txt_firstname = rs.Fields (0)
      txt_title = rs.Fields (1)
      txt_address = rs.Fields (2)
     Конец, если
    
     Установите cmd.ActiveConnection = Nothing
    
    Концевой переводник 

    Здесь мы сначала назначаем значение идентификатора сотрудника в текстовом поле ( txt_empid ) на str_empid . Вы должны установить cmd в качестве нового объекта команды и указать используемое соединение ( con ), тип команды ( adCmdStoredProc - для хранимой процедуры), текст команды ( empdetails - имя хранимой процедуры ), параметр и значение ( empid - имя параметра, str_empid - значение id сотрудника).После этого выполняем команду cmd и присваиваем значение rs (объект ADODB Recordset). Если набор записей ( rs ) содержит какое-то значение, эти значения будут присвоены соответствующим текстовым полям. Наконец, установите для подключения cmd значение none.

  • Выполните программу (F5). Введите идентификатор сотрудника и нажмите кнопку Получить, вы должны получить результат, аналогичный приведенному ниже:

  • Использование параметра OUTPUT в хранимых процедурах

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

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

    СОЗДАТЬ ПРОЦЕДУРУ update_empdetails @empid int, _
    @firstname varchar (30), @ title varchar (30),
    @address varchar (100), @ result int ВЫХОД КАК
    Начинать
    обновить Сотрудники устанавливают FirstName = @ firstname, Title = @ title, _
    Адрес = @ адрес ГДЕ EmployeeID = @ empid;
    установить @ result = 1;
    выберите @result;
    EndGO 

    Здесь @result int OUTPUT - выходной параметр, set @ result = 1 задает значение для параметра, select @result Оператор необходим только в том случае, если вы хотите увидеть результат в SQL Query Analyzer.

    Для проверки процедуры в SQL Query Analyzer :

    update_empdetails 1, 'abc', 'Программист', 'Адрес', 0 

    Вызов этой процедуры в VB

    1. Добавьте еще одну командную кнопку ( name = cmd_update , Caption = Update ) в форму, как показано ниже:

    2. В событии нажатия кнопки введите этот код:
      Частная подпрограмма cmd_update_Click ()
      Разрешить как целое число
      Установите cmd = New ADODB.Командование
      cmd.ActiveConnection = con
      cmd.CommandType = adCmdStoredProc
      cmd.CommandText = "update_empdetails"
      cmd.Parameters.Append cmd.CreateParameter_
      ("empid", adVarChar, adParamInput, 6, txt_empid.Text)
      cmd.Parameters.Append cmd.CreateParameter_
      ("имя", adVarChar, adParamInput, 30, txt_firstname.Text)
      cmd.Parameters.Append cmd.CreateParameter_
      ("заголовок", adVarChar, adParamInput, 30, txt_title.Text)
      cmd.Parameters.Append cmd.CreateParameter_
      ("адрес", adVarChar, adParamInput, 100, txt_address.Текст)
      cmd.Parameters.Append cmd.CreateParameter («результат», adInteger, adParamOutput)
      cmd.Execute
      res = cmd ("результат")
      Если (res = 1) Тогда
       MsgBox «Обновлено успешно»
      Конец, если
      Установите cmd.ActiveConnection = Nothing
      Концевой переводник 

      Здесь cmd.Parameters.Append cmd.CreateParameter ("результат", adInteger, adParamOutput) предназначен для указания выходного параметра.

      • результат - имя выходного параметра
      • adInteger - тип данных
      • adParamOutput - Направление параметра Enum , для выходного параметра
      res = cmd ("результат") 

      Этот оператор присвоит значение параметра результата res .

    3. Выполните программу (F5). Введите идентификатор сотрудника и нажмите кнопку «Получить».

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

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