Я пытаюсь написать SQL-скрипт с идиотским доказательством, который может выполняться неграмотными пользователями без SQL.Выполнять SQL-запрос только в том случае, если выполнено условие
Моя идея состоит в том, чтобы иметь пару переменных, определенных в верхней части скрипта, а затем запускать определенные запросы на основе этих переменных.
Я тестирую на mySQL, но в конечном итоге это будет работать на SQL-сервере.
В псевдокоде это то, что я пытаюсь сделать:
# Set matchThis to the value to match
SET @matchThis = "matchMe";
# Uncomment (remove the #) one of the two lines below to update or just view
#SET @update = "YES";
SET @update = "NO";
IF @update = "YES" {
UPDATE myTable SET myColumn = "changed" WHERE matchVal = @matchThis;
} ELSE {
SELECT * FROM myTable WHERE matchVal = @matchThis;
}
Я хочу сделать это полностью в SQL, если есть способ.
Я видел руководства по использованию SELECT IF
и т. Д., Но не могу понять, как достичь вышеуказанного.
Вы хотите предоставить пользователю, не являющемуся языком SQL, доступ к вашему серверу для выполнения SQL-скриптов? Это звучит опасно, если не сказать больше. – WeSt
Поместите любой sql, который вы хотите в процедуру, и запустите это. – Mihai
@WeSt Это сделано в настоящий момент, когда люди фактически вручную редактируют таблицы. Когда я говорю не-SQL-грамотный, у них есть некоторые (разные уровни) способности, но сценарии кажутся очевидным способом сделать вещи более безопасными, гарантируя, что только правые таблицы будут изменены ... –