Ваш вопрос немного неопределенен, но я предполагаю UPSERT
, мог считаться шаблоном разработки. Для языков, которые не реализуют MERGE
, много альтернатив для решения проблемы (если подходящие строки существует, UPDATE
; еще INSERT
), существуют.
У вас есть # строка
директива препроцессора .
#line
позволяет вам изменять номер строки компилятора и (необязательно) вывод имени файла для ошибок и предупреждений.Можно использовать директиву
#line
на автоматизированном промежуточном этапе процесса сборки. Например, если строки были удалены из исходного файла исходного кода, но вы по-прежнему хотели, чтобы компилятор генерировал вывод на основе исходной нумерации строк в файле, вы можете удалить строки, а затем имитировать исходную нумерацию строк с помощью#line
.Директива
#line hidden
скрывает следующие друг за другом строки от отладчика, так что, когда разработчик выполняет код, любые строки между#line hidden
и следующейДиректива #line
(при условии, что это не другая скрытая директива #line) будет перешагнуть. Этот параметр также можно использовать, чтобы позволить ASP.NET различать определяемый пользователем и созданный машиной код. Хотя ASP.NET является основным потребителем этой функции, вполне вероятно, что ее будут использовать другие генераторы исходного кода.Директива
#line hidden
не влияет на имена файлов или номера строк в сообщениях об ошибках. То есть, если ошибка обнаружена в скрытом блоке, компилятор сообщит текущее имя файла и номер строки ошибки.Директива
#line filename
указывает имя файла, который вы хотите отобразить в выводе компилятора. По умолчанию используется фактическое имя файла исходного кода. Имя файла должно быть заключено в двойные кавычки ("") и ему должен предшествовать номер строки.