YAFLogo

willhowells
  • willhowells
  • 54.8% (Neutral)
  • YAF Forumling Topic Starter
5 years ago
Hi,

I'm having trouble upgrading the database as part of the latest version upgrade. Here's the error I get

--

Server Error in '/' Application.
FILE:
mssql/upgrade/tables.sql

ERROR:
The procedure 'sys.sp_fulltext_column' cannot be executed within a transaction.
Cannot alter or drop column 'Message' because it is enabled for Full-Text Search.

STATEMENT:
if exists (select top 1 1 from sys.columns where object_id = object_id('[dbo].[yaf_Message]') and name = 'Message' and system_type_id = 99 
  and exists(select * from sys.sysfulltextcatalogs where name = N'YafSearch'))
begin
  exec sp_fulltext_column N'[dbo].[yaf_Message]', N'Message', N'drop'
  
  alter table [dbo].[yaf_Message] alter column [Message] nvarchar(max)
  
  exec sp_fulltext_column N'[dbo].[yaf_Message]', N'Message', N'add'
end
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.Exception: FILE:
mssql/upgrade/tables.sql

ERROR:
The procedure 'sys.sp_fulltext_column' cannot be executed within a transaction.
Cannot alter or drop column 'Message' because it is enabled for Full-Text Search.

STATEMENT:
if exists (select top 1 1 from sys.columns where object_id = object_id('[dbo].[yaf_Message]') and name = 'Message' and system_type_id = 99 
  and exists(select * from sys.sysfulltextcatalogs where name = N'YafSearch'))
begin
  exec sp_fulltext_column N'[dbo].[yaf_Message]', N'Message', N'drop'
  
  alter table [dbo].[yaf_Message] alter column [Message] nvarchar(max)
  
  exec sp_fulltext_column N'[dbo].[yaf_Message]', N'Message', N'add'
end

Source Error: 

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

Stack Trace: 


[Exception: FILE:
mssql/upgrade/tables.sql

ERROR:
The procedure 'sys.sp_fulltext_column' cannot be executed within a transaction.
Cannot alter or drop column 'Message' because it is enabled for Full-Text Search.

STATEMENT:
if exists (select top 1 1 from sys.columns where object_id = object_id('[dbo].[yaf_Message]') and name = 'Message' and system_type_id = 99 
   and exists(select * from sys.sysfulltextcatalogs where name = N'YafSearch'))
begin
   exec sp_fulltext_column N'[dbo].[yaf_Message]', N'Message', N'drop'
   
   alter table [dbo].[yaf_Message] alter column [Message] nvarchar(max)
   
   exec sp_fulltext_column N'[dbo].[yaf_Message]', N'Message', N'add'
end]
   YAF.Classes.Data.LegacyDb.system_initialize_executescripts(String script, String scriptFile, Boolean useTransactions) +1475
   YAF.Core.Services.InstallUpgradeService.ExecuteScript(String scriptFile, Boolean useTransactions) +172
   YAF.Types.Extensions.EnumerableExtensions.ForEach(IEnumerable`1 list, Action`1 action) +232
   YAF.Core.Services.InstallUpgradeService.UpgradeDatabase(Boolean fullText, Boolean upgradeExtensions) +145
   YAF.Install._default.Wizard_NextButtonClick(Object sender, WizardNavigationEventArgs e) +1554
   System.Web.UI.WebControls.Wizard.OnNextButtonClick(WizardNavigationEventArgs e) +134
   System.Web.UI.WebControls.Wizard.OnBubbleEvent(Object source, EventArgs e) +491
   System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args) +50
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +5062
--

Is there anything I can do at my end to fix this - for example something I could change in my SQL server settings that would help make this work?

Thanks,
Will
Sponsor

tha_watcha
  • tha_watcha
  • 100% (Exalted)
  • YAF.NET Project Lead 🤴 YAF Version: 3.0.3
5 years ago
What happens when you go to Admin > Database > Run SQL Query

if exists (select top 1 1 from sys.columns where object_id = object_id('[{databaseOwner}].[{objectQualifier}Message]') and name = 'Message' and system_type_id = 99 
   and exists(select * from sys.sysfulltextcatalogs where name = N'YafSearch'))
begin
   exec sp_fulltext_column N'[{databaseOwner}].[{objectQualifier}Message]', N'Message', N'drop'
end

if exists (select top 1 1 from sys.columns where object_id = object_id('[{databaseOwner}].[{objectQualifier}Message]') and name = 'Message' and system_type_id = 99 
   and exists(select * from sys.sysfulltextcatalogs where name = N'YafSearch'))
begin
   alter table [{databaseOwner}].[{objectQualifier}Message] alter column [Message] nvarchar(max)
end
go

And click run Query
willhowells
  • willhowells
  • 54.8% (Neutral)
  • YAF Forumling Topic Starter
5 years ago
Thanks. It says:

Incorrect syntax near 'go'.

No Results Returned.

Cheers,
Will
tha_watcha
  • tha_watcha
  • 100% (Exalted)
  • YAF.NET Project Lead 🤴 YAF Version: 3.0.3
5 years ago
Yes sorry remove the last go

if exists (select top 1 1 from sys.columns where object_id = object_id('[{databaseOwner}].[{objectQualifier}Message]') and name = 'Message' and system_type_id = 99 
   and exists(select * from sys.sysfulltextcatalogs where name = N'YafSearch'))
begin
   exec sp_fulltext_column N'[{databaseOwner}].[{objectQualifier}Message]', N'Message', N'drop'
end

if exists (select top 1 1 from sys.columns where object_id = object_id('[{databaseOwner}].[{objectQualifier}Message]') and name = 'Message' and system_type_id = 99 
   and exists(select * from sys.sysfulltextcatalogs where name = N'YafSearch'))
begin
   alter table [{databaseOwner}].[{objectQualifier}Message] alter column [Message] nvarchar(max)
end
willhowells
  • willhowells
  • 54.8% (Neutral)
  • YAF Forumling Topic Starter
5 years ago
Thanks. That executed and I got:

Cannot alter or drop column 'Message' because it is enabled for Full-Text Search.

No Results Returned.
tha_watcha
  • tha_watcha
  • 100% (Exalted)
  • YAF.NET Project Lead 🤴 YAF Version: 3.0.3
5 years ago
Not sure why its not working but lets try the direct approach

if exists (select top 1 1 from sys.columns where object_id = object_id('[{databaseOwner}].[{objectQualifier}Message]') and name = 'Message' and system_type_id = 99 
   and exists(select * from sys.sysfulltextcatalogs where name = N'YafSearch'))
begin
   alter fulltext index on [dbo].[yaf_Message] drop ([Message])
   alter table [{databaseOwner}].[{objectQualifier}Message] alter column [Message] nvarchar(max)
end
willhowells
  • willhowells
  • 54.8% (Neutral)
  • YAF Forumling Topic Starter
5 years ago
Thanks very much - that worked OK. I'll have another go at running the upgrade on Monday and see how it goes.

Will
willhowells
  • willhowells
  • 54.8% (Neutral)
  • YAF Forumling Topic Starter
5 years ago
I've run a test upgrade on a staging server and that went OK - thanks for your help.
tha_watcha
  • tha_watcha
  • 100% (Exalted)
  • YAF.NET Project Lead 🤴 YAF Version: 3.0.3
5 years ago
Uff Okay wait with the upgrade there will be a new version on the weekend.
YAF Logo Copyright © YetAnotherForum.NET & Ingo Herbote. All rights reserved
About Us

The YAF.NET is an open source .NET forum project. YAF.NET is supported by an team of international developers who are build community by building community software.

Powered by Resharper Donate with PayPal button