Итак, я последовал каждое предложение в этом диалоге, и каждый из них был другой орех, чтобы связать. Затем я провел еще 3 часа в Интернете и до сих пор не придумал ПРОСТОЕ РЕШЕНИЕ к этой проблеме.
Зная, что coldfusion является простым серверным языком, я знаю, что где-то был какой-то ответ, поэтому я попробовал функцию «columnList». Удивительно, но это сработало:
<cfquery name="my_Recordset" datasource="my_Datasource">
SELECT * FROM my_Table
</cfquery>
<CFIF NOT ISDEFINED('my_Recordset.my_Column')>
<!--- create column because it doesnt exist --->
<cfelse>
<!--- drop or update column because it exist --->
</cfif>
Кроме того, вы можете поместить все столбцы в таблице в списке, вы можете выполнить поиск с помощью функции Список, ListContains, как показано ниже:
<cfquery name="my_Recordset" datasource="my_Datasource">
SELECT * FROM my_Table
</cfquery>
<cfset myList = #my_Recordset.columnList#>
<cfset mySearchResult = #ListContains(myList, "my_Column")#>
<CFIF mySearchResult is 0>
<!--- create column because it doesnt exist --->
<cfelse>
<!--- drop or update column because it exist --->
</cfif>
Не так, как я бы это сделать, но это выглядит, как он будет работать. Я предполагаю, что sql действителен для используемого вами механизма базы данных. –
Какое программное обеспечение для баз данных вы используете? –
Если вы делаете это как однократное задание, потому что это единственный способ получить доступ к вашему db, просто запустите запрос alter table. Если столбец есть, ошибка не имеет значения. Если это часть какого-либо приложения, возможно, вам следует отступить и подумать об этом. Мне кажется неразумным. –