Как зарегистрировать ИП в режиме онлайн
Если вы впервые решили открыть свой небольшой бизнес и не знаете с чего начать, то здесь мы расскажем о процедуре регистрации индивидуального предпринимателя (ИП) в электронном формате.
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 дней с даты регистрации. Отчитываться по ОСНО за этот период не нужно: налоги будут начисляться по УСН, как будто вы работали по ней с самого начала.
Проконсультируйтесь с бухгалтером и определитесь с системой налогообложения до регистрации ИП. Если для вас выгоднее упрощенка, то лучше подать заявление о переходе сразу.
Как заполнить заявление о переходе на упрощенку- Скачайте форму 26.2-1 в формате PDF и заполните по образцу.
- В полях ИНН и КПП поставьте прочерки (дефисы).
- Узнайте код вашей налоговой на сайте — он состоит из четырех цифр.
- В поле «Признак налогоплательщика» поставьте цифру «1».
- Укажите фамилию, имя и отчество. Во все пустые клетки поставьте прочерки (дефисы).
- Напротив пункта «переходит на упрощенную систему налогообложения» поставьте цифру «2». В следующей строке во всех полях поставьте прочерки, так как вы переходите на УСН с даты постановки на учет.
- Напротив пункта «в качестве налогообложения выбраны» поставьте цифру: «1» — доходы, «2» — «доходы минус расходы».
- Укажите год подачи заявления.
- Поставьте цифру «1» если подаете заявление сами, и цифру «2», если через представителя.
- Снова укажите фамилию, имя, отчество. В пустые клетки поставьте прочерки.
- Укажите номер телефона и дату подачи заявления. Подпись не ставьте, лучше сделать это в налоговой перед подачей.
- Поля в правом нижнем углу оставьте пустыми.
Если вы переходите на упрощенку после того, как зарегистрировали ИП, некоторые моменты в заполнении будут отличаться. Внимательно прочитайте сноски внизу формы. Подробные правила оформления читайте в статье Regberry или посмотрите видео.
Оплатите госпошлинуДля регистрации ИП необходимо заплатить пошлину 800 ₽. Это можно сделать в любом банке или на сайте налоговой.
В банке потребуются реквизиты местной налоговой. Найти их можно на сайте ИФНС с помощью специальной формы. Для этого кликните на верхнее поле «Адрес».
В появившемся окне укажите адрес прописки. После заполнения нажмите «ОК».
Сервис определит номер отделения налоговой, к которому вы относитесь. Нажмите «Далее».
Появится список реквизитов вашей налоговой — вам нужны только реквизиты для регистрации ИП. Перепишите их и возьмите с собой в банк. Оплатите пошлину и сохраните квитанцию: ее вы сдадите в налоговую.
Если оплачиваете пошлину через интернет, платите на сайте налоговой:
- Заполните форму и обязательно укажите ИНН — без него не получится оплатить онлайн.
- В качестве способа оплаты выберите «Безналичный расчет». Откроется окно с банками и денежными сервисами.
- Выберите оплату через «Госуслуги».
- После оплаты на почту вам придет электронная квитанция с печатью. Распечатайте ее и сохраните.
Я оплатил госпошлину на сайте налоговой и распечатал дома на принтере. Идти в Сбербанк не обязательно
Выберите банк, в котором откроете расчетный счетПо закону ИП может работать без расчетного счета, но по факту без него не обойтись. Расчетный счет нужен для безналичных операций более 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 и проверит данные.
Вставьте в ноутбук флешку с электронной подписью и нажмите кнопку «Подписать документы». После этого оплатите госпошлину тут же на сайте «Госуслуг» и отправьте документы в налоговую.
Получите электронные версии документов
В течение нескольких часов вам на почту придет подтверждение о том, что налоговая получила ваши документы. А через три рабочих дня на почту и в личный кабинет «Госуслуг» придет архив с документами о регистрации ИП. В архиве вы найдете уведомление о постановке на учет в налоговой и выписку из ЕГРИПа, подписанные цифровой подписью.
Вывод
Зарегистрировать ИП можно двумя способами: лично и удаленно.
Если живете в городе прописки, подайте документы в налоговую лично.
- Документы можно подготовить за два-три часа.
- Придется потратить 800 ₽ на госпошлину и 20 ₽ на ксерокопию паспорта.
- Запишитесь в налоговую на удобное время. Можно даже в субботу. Придите вовремя и сдайте документы — это займет 10–15 минут.
- Заберите документы о регистрации из налоговой через 3 дня. Дату и время сообщают в день подачи.
- Откройте расчетный счет и начните работать.
Если прописаны в другом городе, удобнее и выгоднее подать документы онлайн.
- Вам не придется отпрашиваться с работы и тратить деньги на поезд или самолет.
- Потратите 560 ₽ на госпошлину и 1000 ₽ на электронную подпись.
- Отсканируйте все документы, переведите в формат .tiff и соедините в многостраничный документ.
- Сформируйте архив с документами, подпишите его электронной подписью и отправьте в налоговую.
- Подождите 3 дня и получите на электронную почту документы о регистрации ИП.
- Откройте расчетный счет и начните работать.
Опубликовали 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 ГДЕ P.ProductID=@PID END |
EXEC GetProductDesc_withparameters 706 |
При выполнении хранимой процедуры нам необходимо передать входной параметр. Пожалуйста, обратитесь к изображению ниже для получения набора результатов.
Создание хранимой процедуры со значениями параметров по умолчанию
Ниже приведен пример хранимой процедуры со значениями параметров по умолчанию.
СОЗДАТЬ ПРОЦЕДУРУ GetProductDesc_withDefaultparameters (@PID INT = 706) AS BEGIN SET NOCOUNT ON SELECT P. ProductDescription PD ON P.ProductID = PD.ProductID ГДЕ P.ProductID=@PID 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. Эта статья содержит ответы на следующие вопросы:
- Что такое хранимая процедура в SQL?
- Почему мы используем SET NOCOUNT ON в хранимой процедуре?
- Сколько существует типов хранимых процедур?
- Как писать комментарии в SQL Server?
- Каковы соглашения об именах для хранимых процедур?
- Как создать хранимую процедуру для выбора данных из вкладки базы данных с помощью запроса SELECT SQL?
- Как выполнять хранимые процедуры в SQL Server?
- Что такое параметры в хранимых процедурах?
- Как создать параметры в хранимой процедуре запроса SELECT, которая возвращает записи в соответствии с переданным параметром?
- Как создать хранимую процедуру на основе запроса INSERT?
- Как создать хранимую процедуру на основе запроса UPDATE?
- Как создать хранимую процедуру для удаления записей с помощью запроса DELETE?
Что такое хранимая процедура?
Хранимая процедура (SP) SQL — это набор операторов SQL и логики команд sql, которые компилируются и хранятся в базе данных.Сохраненные процедуры в SQL позволяют нам создавать SQL-запросы, которые будут храниться и выполняться на сервере. Сохраненные процедуры также можно кэшировать и использовать повторно. Основная цель хранимых процедур — скрыть прямые SQL-запросы от кода и повысить производительность таких операций с базой данных, как выбор, обновление и удаление данных.
Почему мы используем SET NOCOUNT ON в хранимой процедуре?
Хотя мы устанавливаем SET NOCOUNT ON, это означает, что нет сообщений, показывающих количество затронутых строк.
NOCOUNT означает не считать, что включено.
Теперь вы узнаете, что произошло, когда ВЫКЛ.
Типы хранимых процедур
В SQL Server доступны два типа хранимых процедур:
- Пользовательские хранимые процедуры
- Системные хранимые процедуры
Пользовательские хранимые процедуры
Определяемые пользователем хранимые процедуры создаются разработчиками или администраторами баз данных.Эти 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 используются для определения запроса операции.Здесь вы будете писать запросы на выбор, обновление, вставку или удаление.
- УСТАНОВИТЬ ANSI_NULLS НА
- GO
- УСТАНОВИТЬ QUOTED_IDENTIFIER НА
- GO
- СОЗДАТЬ ПРОЦЕДУРУ <имя_процедуры, системное имя, имя_процедуры>
- <@ Param1, sysname, @ p1>
= , - <@ Param2, sysname, @ p2>
= - КАК
- НАЧАТЬ
- УСТАНОВИТЬ БЕЗ СЧЕТА;
- ВЫБЕРИТЕ <@ Param1, sysname, @ p1>, <@ Param2, sysname, @ p2>
- КОНЕЦ
- GO
Как писать комментарии в SQL SERVER?
Вы можете комментировать в sql server следующими способами:
- — (два дефиса / тире) для одной строки комментария.
- начинается с / * ……. заканчиваться * / для многострочных комментариев.
Каковы правила именования хранимых процедур?
Мы должны следовать стандартным соглашениям об именах, которые также могут зависеть от вашего проекта и политик кодирования.
Для соглашений об именах хранимых процедур, определяемых пользователем, я предлагаю добавить один из следующих префиксов к вашим именам SP.
- SP
- стп
- stp_
- udstp
- udstp_
Соглашения об именах предназначены только для идентификации объектов.Добавляя эти префиксы в имя, мы можем четко определить, что этот объект является хранимой процедурой.
Создать таблицу базы данных
Раньше мы могли создавать и выполнять любые SP, нам нужна таблица базы данных. Я создаю таблицу базы данных с именем «tblMembers», используя следующий запрос SQL, и выполняю его на сервере. Как видите, в моей таблице 4 столбца, где первый столбец является столбцом идентификации. После создания таблицы откройте ее в SSMS и добавьте данные, вручную введя данные в таблицу.
- ИСПОЛЬЗОВАТЬ [MBKTest]
- GO
- / ****** Объект: Таблица [dbo]. [TblMembers] Дата сценария: 18 ноября 17, сб 18:47:55 ****** /
- УСТАНОВИТЬ ANSI_NULLS НА
- GO
- УСТАНОВИТЬ QUOTED_IDENTIFIER НА
- GO
- УСТАНОВИТЬ ANSI_PADDING НА
- GO
- СОЗДАТЬ ТАБЛИЦУ [dbo]. [TblMembers] (
- [MemberID] [int] IDENTITY (1,1) NOT NULL,
- [MemberName] [varchar] (50) NULL,
- [MemberCity] [varchar] (25) NULL,
- [MemberPhone] [varchar] (15) NULL
- )
- GO
- ВЫКЛЮЧИТЬ ANSI_PADDING
- GO
Как создать хранимую процедуру SELECT?
Щелкните свою базу данных и разверните элемент «Программируемость» и щелкните правой кнопкой мыши «Хранимые процедуры» или нажмите CTRL + N, чтобы открыть новое окно запроса.В области запроса между BEGIN и END введите оператор SELECT, чтобы выбрать записи из таблицы. См. Оператор Select в приведенном ниже коде.
- УСТАНОВИТЬ ANSI_NULLS НА
- GO
- УСТАНОВИТЬ QUOTED_IDENTIFIER НА
- GO
- СОЗДАТЬ ПРОЦЕДУРУ stpGetAllMembers
- КАК
- НАЧАТЬ
- УСТАНОВИТЬ БЕЗ СЧЕТА;
- Выбрать * из tblMembers
- КОНЕЦ
- GO
Теперь нажмите F5 или нажмите кнопку «Выполнить», чтобы выполнить SP.
Вы должны увидеть сообщение «Команды успешно выполнены».
Теперь перейдите в «Программируемость» -> «Хранимые процедуры», щелкните правой кнопкой мыши и выберите «Обновить».
На следующем изображении вы можете видеть, что создается новый SP с именем stpGetAllMembers.
Выполнение хранимых процедур в SQL Server
В пользовательском интерфейсе ниже щелкните правой кнопкой мыши имя служебного процессора и выберите «Выполнить хранимую процедуру»… выполнить ИП. Отсюда вы также можете изменить существующий SP.
Кроме того, вы также можете выполнить SP из окна запроса.
Чтобы запустить хранимую процедуру в SQL Server Management Studio, переключитесь в окно запроса или CTRL + N, чтобы открыть новое окно запроса, и введите следующую команду.
- Синтаксис — EXEC <имя хранимой процедуры>
- Пример — EXEC stpGetAllMembers
Теперь мы запускаем нашу хранимую процедуру под названием stpGetAllMembers.Результат выглядит следующим образом:
ВЫХОД
Что такое параметры в хранимых процедурах?
Параметры в SP используются для передачи входных значений и возврата выходных значений. Есть два типа параметров:
- Входные параметры — передача значений в хранимую процедуру.
- Выходные параметры — возвращаемые значения из хранимой процедуры.
Как создать СП запроса SELECT с параметрами?
На предыдущих шагах мы создали простой SP, который возвращал все строки из таблицы.Теперь давайте создадим новый SP, который примет название города в качестве входящего параметра и вернет все строки, в которых название города соответствует значению входного параметра.
Вот обновленный SP с параметром @CityName.
- УСТАНОВИТЬ ANSI_NULLS НА
- GO
- УСТАНОВИТЬ QUOTED_IDENTIFIER НА
- GO
- СОЗДАТЬ ПРОЦЕДУРУ stpGetMembersByCityName
- @CityName nvarchar (30)
- КАК
- НАЧАТЬ
- УСТАНОВИТЬ БЕЗ СЧЕТА;
- Выбрать * Из tblMembers
- , где MemberCity вроде ‘%’ + @ CityName + ‘%’
- КОНЕЦ
- GO
Выполнить.
Чтобы запустить этот SP, введите следующую команду в инструменте запросов SQL:
EXEC GetMemberByCityName @CityName = ‘mal’
ИЛИ из пользовательского интерфейса запустите SP и введите следующие данные.
Код для выполнения выглядит следующим образом:
- ИСПОЛЬЗОВАТЬ [MBKTest]
- GO
- ОБЪЯВИТЬ @return_value int
- EXEC @return_value = [dbo].[GetMemberByCityName]
- @CityName = N’mal ‘
- SELECT ‘Возвращаемое значение’ = @return_value
- GO
ВЫХОД
Как создать хранимую процедуру на основе запроса INSERT?
Мы можем использовать запрос INSERT INTO SQL для вставки данных в таблицу. Следующий оператор SQL создает INSERT SP с тремя параметрами.
- УСТАНОВИТЬ ANSI_NULLS НА
- GO
- УСТАНОВИТЬ QUOTED_IDENTIFIER НА
- GO
- СОЗДАТЬ ПРОЦЕДУРУ stpInsertMember
- @MemberName varchar (50),
- @MemberCity varchar (25),
- @MemberPhone varchar (15)
- КАК
- НАЧАТЬ
- УСТАНОВИТЬ БЕЗ СЧЕТА;
- Вставить в tblMembers (MemberName, MemberCity, MemberPhone) Значения
- (@ MemberName, @ MemberCity, @MemberPhone)
- КОНЕЦ
- GO
Щелкните правой кнопкой мыши хранимую процедуру в обозревателе объектов и выберите «Обновить».
Передайте значение параметра в диалоговом окне «Выполнить». Примерно так:
Следующий код можно использовать для выполнения этого SP в SSMS.
- ИСПОЛЬЗОВАТЬ [MBKTest]
- GO
- ОБЪЯВИТЬ @return_value int
- EXEC @return_value = [dbo]. [StpInsertMember]
- @MemberName = N’Mahesh Chand ‘,
- @MemberCity = N’NewYork ‘,
- @MemberPhone = N’9999945121 ‘
- SELECT ‘Возвращаемое значение’ = @return_value
- GO
ВЫХОД
В окне запроса вы можете проверить, добавлена ли в таблицу новая запись для имени члена «Махеш Чанд».
Вы также можете запустить тот же SP в коде.
EXEC stpInsertMember @MemberName = ‘Suhana & Ashish Kalla’, @MemberCity = ‘Mumbai’, @MemberPhone = N’ 92774xxx ‘
ВЫХОД
Вы можете проверить, что запись «Сухана и Ашиш Калла» успешно добавлена.
Как создать хранимую процедуру на основе запросов UPDATE?
Давайте создадим новый SP, который будет обновлять записи таблицы на основе столбца идентификатора участника.Идентификатор передается как входной параметр. Вот новый SP, который использует команду UPDATE..SET..WHERE.
- УСТАНОВИТЬ ANSI_NULLS НА
- GO
- УСТАНОВИТЬ QUOTED_IDENTIFIER НА
- GO
- СОЗДАТЬ ПРОЦЕДУРУ stpUpdateMemberByID
- @MemberID int,
- @MemberName varchar (50),
- @MemberCity varchar (25),
- @MemberPhone varchar (15)
- КАК
- НАЧАТЬ
- УСТАНОВИТЬ БЕЗ СЧЕТА;
- ОБНОВЛЕНИЕ tblMembers
- Установить MemberName = @MemberName,
- MemberCity = @MemberCity,
- MemberPhone = @MemberPhone
- Где MemberID = @MemberID
- КОНЕЦ
- GO
Щелкните правой кнопкой мыши хранимую процедуру в обозревателе объектов и выберите «Обновить».Вы увидите, что SP создан.
Теперь щелкните правой кнопкой мыши имя SP и выберите «Выполнить хранимую процедуру…». Введите входные значения и выполните.
Мы можем использовать следующую команду в SSMS.
- ИСПОЛЬЗОВАТЬ [MBKTest]
- GO
- ОБЪЯВИТЬ @return_value int
- EXEC @return_value = [dbo]. [StpUpdateMemberByID]
- @MemberID = 20,
- @MemberName = Н’Нирупама Калла ‘,
- @MemberCity = N’Mumbai ‘,
- @MemberPhone = N’2541xxxx ‘
- SELECT ‘Возвращаемое значение’ = @return_value
- GO
EXEC stpUpdateMemberByID 17, ‘Gopal Madhavrai’, ‘Bikaner’, ‘ 564xxx’
Результаты должны показать вам обновленные значения.
Как создать хранимую процедуру на основе запроса DELETE?
Давайте создадим SP, который будет удалять записи. Новый SP использует команду DELETE и удаляет все записи, соответствующие указанному идентификатору участника.
- УСТАНОВИТЬ ANSI_NULLS НА
- GO
- УСТАНОВИТЬ QUOTED_IDENTIFIER НА
- GO
- СОЗДАТЬ ПРОЦЕДУРУ stpDeleteMemberByMemberID
- @MemberID int
- КАК
- НАЧАТЬ
- УСТАНОВИТЬ БЕЗ СЧЕТА;
- Удалить из tblMembers
- , где MemberId = @MemberID
- КОНЕЦ
- GO
Выполнить.
Щелкните правой кнопкой мыши «Хранимые процедуры» в проводнике объектов и выберите «Обновить».
ЗАПУСТИТЬ хранимую процедуру BY UI
Теперь снова щелкните правой кнопкой мыши по хранимой процедуре и выберите «Выполнить хранимую процедуру…».
Как вы можете видеть на изображении, я передал значение параметра @MemberID = 4.
ВЫПОЛНИТЬ УДАЛЕНИЕ хранимой процедуры ВРУЧНУЮ (КОДИРОВКА)
EXEC stpDeleteMemberByMemberID 2
ВЫХОД
Вы можете видеть на изображении MemberID = 4 запись была успешно удалена.
В этой статье мы увидели, как создавать хранимые процедуры в базе данных SQL Server для вставки, обновления и удаления записей.
Базовое руководство по хранимым процедурам SQL Server
Резюме : в этом руководстве вы узнаете, как управлять хранимыми процедурами в SQL Server, включая создание, выполнение, изменение и удаление хранимых процедур.
Создание простой хранимой процедуры
Следующий оператор SELECT
возвращает список продуктов из таблицы продукты
в базе данных образца BikeStores:
Язык кода: SQL (язык структурированных запросов) (sql)
SELECT наименование товара, список цен ИЗ производство.продукты СОРТИРОВАТЬ ПО наименование товара;
Чтобы создать хранимую процедуру, которая обертывает этот запрос, используйте оператор CREATE PROCEDURE
следующим образом:
Язык кода: SQL (язык структурированных запросов) (sql)
CREATE PROCEDURE uspProductList В КАЧЕСТВЕ НАЧИНАТЬ ВЫБРАТЬ наименование товара, список цен ИЗ production.products СОРТИРОВАТЬ ПО наименование товара; КОНЕЦ;
В этом синтаксисе:
-
uspProductList
— это имя хранимой процедуры. - Ключевое слово
AS
разделяет заголовок и тело хранимой процедуры. - Если хранимая процедура имеет один оператор, ключевые слова
BEGIN
иEND
, окружающие этот оператор, являются необязательными. Однако рекомендуется включать их, чтобы прояснить код.
Обратите внимание, что в дополнение к ключевым словам CREATE PROCEDURE
вы можете использовать ключевые слова CREATE PROC
, чтобы сделать оператор короче.
Чтобы скомпилировать эту хранимую процедуру, вы выполняете ее как обычный оператор SQL в SQL Server Management Studio, как показано на следующем рисунке:
Если все правильно, вы увидите следующее сообщение:
Язык кода: SQL (язык структурированных запросов) (sql)
Команды успешно выполнены .
Это означает, что хранимая процедура была успешно скомпилирована и сохранена в каталоге базы данных.
Вы можете найти хранимую процедуру в обозревателе объектов, в разделе «Программируемость »> «Хранимые процедуры », как показано на следующем рисунке:
Иногда необходимо нажать кнопку « Обновить », чтобы вручную обновить объекты базы данных в обозревателе объектов. .
Выполнение хранимой процедуры
Для выполнения хранимой процедуры используется оператор EXECUTE
или EXEC
, за которым следует имя хранимой процедуры:
Язык кода: SQL (язык структурированных запросов) (sql)
EXECUTE sp_name;
Или
Язык кода: SQL (язык структурированных запросов) (sql)
EXEC sp_name;
, где sp_name
— это имя хранимой процедуры, которую вы хотите выполнить.
Например, для выполнения хранимой процедуры uspProductList
используется следующий оператор:
Язык кода: SQL (язык структурированных запросов) (sql)
EXEC uspProductList;
Хранимая процедура возвращает следующий результат:
Изменение хранимой процедуры
Чтобы изменить существующую хранимую процедуру, используйте оператор ALTER PROCEDURE
.
Сначала откройте хранимую процедуру, чтобы просмотреть ее содержимое, щелкнув правой кнопкой мыши имя хранимой процедуры и выберите пункт меню Изменить :
Во-вторых, измените тело хранимой процедуры, отсортировав продукты по прейскурантным ценам вместо названий продуктов. :
Язык кода: SQL (язык структурированных запросов) (sql)
ИЗМЕНЕНИЕ ПРОЦЕДУРЫ uspProductList В КАЧЕСТВЕ НАЧИНАТЬ ВЫБРАТЬ наименование товара, список цен ИЗ производство.продукты СОРТИРОВАТЬ ПО список цен КОНЕЦ;
В-третьих, нажмите кнопку Execute , SQL Server изменяет хранимую процедуру и возвращает следующий результат:
Язык кода: SQL (язык структурированных запросов) (sql)
Команды выполнены успешно.
Теперь, если вы снова выполните хранимую процедуру, вы увидите, что изменения вступают в силу:
Язык кода: SQL (язык структурированных запросов) (sql)
EXEC uspProductList;
Ниже показан частичный вывод:
Удаление хранимой процедуры
Для удаления хранимой процедуры используйте DROP PROCEDURE
или DROP PROC Оператор
:
Язык кода: SQL (язык структурированных запросов) (sql)
ПРОЦЕДУРА DROP sp_name;
или
Язык кода: SQL (язык структурированных запросов) (sql)
DROP PROC sp_name;
, где sp_name
— это имя хранимой процедуры, которую вы хотите удалить.
Например, чтобы удалить хранимую процедуру uspProductList
, выполните следующий оператор:
Язык кода: SQL (язык структурированных запросов) (sql)
DROP PROCEDURE uspProductList;
В этом руководстве вы узнали, как управлять хранимыми процедурами 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 (пример)
- Создайте новый проект в Visual Basic.
- В форме разместите следующие элементы управления в порядке, показанном на рисунке:
- Три метки (имя, заголовок, адрес)
- Четыре текстовых поля (
txt_empid
,txt_firstname
,txt_title
,txt_address
) - Кнопка One Command (
name = cmd_get
,Caption = Get
)
Вариант Явный 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
открывает соединение с базой данных.
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.
Использование параметра 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
- Добавьте еще одну командную кнопку (
name = cmd_update
,Caption = Update
) в форму, как показано ниже: - В событии нажатия кнопки введите этот код:
Частная подпрограмма 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
. -
- Выполните программу (F5). Введите идентификатор сотрудника и нажмите кнопку «Получить».