Я новичок в TSQL/SQL, и я хочу узнать «While Loops» в TSQL/SQL. Есть ли хорошие сайты/книги, которые могут помочь улучшить мои знания в отношении «Петли». Ваш вклад очень ценится.TSQL/SQL - Loop
ответ
Вам не нужна книга - просто прочитайте на cursor functionality in T-SQL. Есть примеры кода, демонстрирующие цикл. Как говорит Одед, цикл является императивной конструкцией, тогда как SQL является декларативным языком - цикл в SQL «делает это неправильно», хотя функциональность существует, когда вам действительно нужно «делать это сейчас».
Если вы вынуждены зацикливаться на SQL, используйте, по крайней мере, WHILE. НИКОГДА не используйте курсор! Курсоры в конечном итоге убьют вашу работу. Повторяю, НЕ используйте курсоры. –
Спасибо за подсказку. Почитает обо всех этих темах и узнает, почему один лучше других. – Warne
Я не согласен с комментарием, что CURSOR будут убивать вашу производительность только в том случае, если в некоторых случаях CURSOR - единственный способ пойти. Например, выполните операции на основе набора, создав динамическую строку SQL, которая создается из работы CURSOR. НИКОГДА не очень сильное слово. – wergeld
Цикл SQL почти такой же, как любой другой цикл программирования, как в, он работает до тех пор, пока данное условие больше не будет выполнено. Однако, как отметил Одед, SQL - это язык на основе SET, и он слабее как процедурный язык. Пожалуйста, обратитесь к статье this за дополнительной информацией о различии между процедурами, особенно в том, что касается SQL.
Итак, в заключение найдите способы перезаписи любых запросов цикла, чтобы они были более SET на основе группы данных за один раз. Если вы не можете, то, возможно, это скорее проблема для кода, а не SQL.
Хорошее решение, которое обычно можно избежать во время циклов и было хорошо реализовано командами SQL, приведено ниже. Будем надеяться, что это может помочь вам, если вы не можете пойти в код и все еще ищут эффективное решение в SQL
Спасибо за ввод. Я думал о сценариях, например, как и для всех строк в таблице. Подобным случаям могут понадобиться петли. – Warne
Я обновил свой ответ, чтобы указать вам направление CTE. Они часто являются более эффективным способом делать то, что вы обычно делали в циклах. Часто они объединяются с ROW_NUMBER() и PARTITION. Тем не менее, я бы повторно повторил попытку мыслить в логике SET, и если вы не можете создать решение таким образом (особенно, если вы ссылаетесь на строки «делаете» вещи), используйте код –
. CTE может сделать трюк. Почитает об этом. Благодарю. – Warne
MSDN - это, как правило, лучшая онлайн-документация для чего-либо в стеке технологий Microsoft.
Благодарим вас за ссылку. В целом, MSDN кажется хорошим местом для информации. – Warne
- 1. Loop-loop loop with JButton
- 2. Переводы for-loop в loop-loop? Ruby
- 3. vba do while loop wont loop loop
- 4. PHP While Loop In Loop Loop
- 5. Selenium/Python loop loop
- 6. VBScript Loop в Loop
- 7. Loop in a Loop
- 8. Mongodb slow loop loop
- 9. Общая проблема Loop Loop
- 10. fork() loop for() loop
- 11. AutoHotKey Loop Script Loop
- 12. Loop in loop python
- 13. Rails Loop в Loop
- 14. Winsock2 loop loop
- 15. AS3 loop loop stop
- 16. Ansible loop in loop
- 17. JQuery. Loop loop logic
- 18. Индекс coffeescript. Loop loop
- 19. Wordpress Loop in Loop
- 20. Snap SVG loop loop
- 21. Handlebars.js Loop Within Loop
- 22. C# date loop loop
- 23. JavaScript LoN loop loop
- 24. For loop convert While loop
- 25. Для Loop vs Foreach Loop
- 26. While Loop внутри While Loop
- 27. System.Threading.Tasks in a loop loop
- 28. Loop Loop в XML-файле?
- 29. Loop in loop with facelets
- 30. `loop {}` versus `loop {sleep 1}`
Избегайте циклические конструкции в SQL и начать думать о множественных операциях. Конструкции Looping _expensive_ в SQL. – Oded
Спасибо, Одед, сохранит этот ум. Любая идея относительно учебного материала. – Warne
читайте онлайн-справку SSMS или просто google 'WHILE Transact-SQL' –