Content Create Script.sql
From Dragon Age Toolset Wiki
This is one of the two SQL scripts used to create a blank database. See Database for more details.
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_Module_t_ModuleType]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_Module] DROP CONSTRAINT FK_t_Module_t_ModuleType
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_ResourceDefinition_t_ResourceTables]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_ResourceDefinition] DROP CONSTRAINT FK_t_ResourceDefinition_t_ResourceTables
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_ResourceTableRelationship_t_ResourceTables]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_ResourceTableRelationship] DROP CONSTRAINT FK_t_ResourceTableRelationship_t_ResourceTables
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_ResourceTableRelationship_t_ResourceTables1]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_ResourceTableRelationship] DROP CONSTRAINT FK_t_ResourceTableRelationship_t_ResourceTables1
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_StringExportHistory_StringExportLabel]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_StringExportHistory] DROP CONSTRAINT FK_StringExportHistory_StringExportLabel
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_StringExportLabelResourceStats_StringExportLabel]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_StringExportLabelResourceStats] DROP CONSTRAINT FK_StringExportLabelResourceStats_StringExportLabel
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_StringExportLabelStringTypeStats_StringExportLabel]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_StringExportLabelStringTypeStats] DROP CONSTRAINT FK_StringExportLabelStringTypeStats_StringExportLabel
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_StringLanguageVariantText_StringImportSession]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_StringLanguageVariantText] DROP CONSTRAINT FK_StringLanguageVariantText_StringImportSession
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_StringLanguageVariantVersion_StringImportSession]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_StringLanguageVariantVersion] DROP CONSTRAINT FK_StringLanguageVariantVersion_StringImportSession
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_String_t_StringTable]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_String] DROP CONSTRAINT FK_t_String_t_StringTable
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_StringVersion_t_StringType]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_StringVersion] DROP CONSTRAINT FK_t_StringVersion_t_StringType
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_StringLanguageVariant_t_StringVariant]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_StringLanguageVariant] DROP CONSTRAINT FK_t_StringLanguageVariant_t_StringVariant
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_VOSessionInstanceVersion_t_VOSessionInstance]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_VOSessionInstanceVersion] DROP CONSTRAINT FK_t_VOSessionInstanceVersion_t_VOSessionInstance
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_ResRef_t_ResourceDefinition]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_ResRef] DROP CONSTRAINT FK_t_ResRef_t_ResourceDefinition
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_Area_t_String]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_Area] DROP CONSTRAINT FK_t_Area_t_String
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_ConversationLine_t_String]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_ConversationLine] DROP CONSTRAINT FK_t_ConversationLine_t_String
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_Creature_t_String]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_Creature] DROP CONSTRAINT FK_t_Creature_t_String
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_CutsceneAction_t_String]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_CutsceneAction] DROP CONSTRAINT FK_t_CutsceneAction_t_String
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_Item_t_String]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_Item] DROP CONSTRAINT FK_t_Item_t_String
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_Item_t_String1]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_Item] DROP CONSTRAINT FK_t_Item_t_String1
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_Merchant_t_String]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_Merchant] DROP CONSTRAINT FK_t_Merchant_t_String
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_Placeable_t_String]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_Placeable] DROP CONSTRAINT FK_t_Placeable_t_String
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_Plot_t_String]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_Plot] DROP CONSTRAINT FK_t_Plot_t_String
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_PlotStatus_Journal_t_String]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_PlotStatus] DROP CONSTRAINT FK_t_PlotStatus_Journal_t_String
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_StringSound_t_String]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_StringSound] DROP CONSTRAINT FK_t_StringSound_t_String
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_StringVersion_t_String]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_StringVersion] DROP CONSTRAINT FK_t_StringVersion_t_String
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_StringExportHistoryAdjustmentLog_StringExportHistory]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_StringExportHistoryAdjustmentLog] DROP CONSTRAINT FK_StringExportHistoryAdjustmentLog_StringExportHistory
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_Area_t_ResRef]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_Area] DROP CONSTRAINT FK_t_Area_t_ResRef
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_Area_t_ResRef1]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_Area] DROP CONSTRAINT FK_t_Area_t_ResRef1
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_AreaMusicVolume_t_ResRef]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_AreaMusicVolume] DROP CONSTRAINT FK_t_AreaMusicVolume_t_ResRef
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_AreaObject_t_ResRef]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_AreaObject] DROP CONSTRAINT FK_t_AreaObject_t_ResRef
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_AssociatedResource_t_ResRef]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_AssociatedResource] DROP CONSTRAINT FK_t_AssociatedResource_t_ResRef
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_Character_t_ResRef]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_Character] DROP CONSTRAINT FK_t_Character_t_ResRef
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_Character_t_ResRef2]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_Character] DROP CONSTRAINT FK_t_Character_t_ResRef2
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_Conversation_EndConversationPlotResRefID_t_ResRef]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_Conversation] DROP CONSTRAINT FK_t_Conversation_EndConversationPlotResRefID_t_ResRef
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_Conversation_t_ResRef]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_Conversation] DROP CONSTRAINT FK_t_Conversation_t_ResRef
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_Conversation_t_ResRef1]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_Conversation] DROP CONSTRAINT FK_t_Conversation_t_ResRef1
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_Conversation_t_ResRef3]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_Conversation] DROP CONSTRAINT FK_t_Conversation_t_ResRef3
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_ConversationCinematics_t_ResRef]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_ConversationCinematics] DROP CONSTRAINT FK_t_ConversationCinematics_t_ResRef
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_ConversationLine_ActionPlotResRefID_t_ResRef]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_ConversationLine] DROP CONSTRAINT FK_t_ConversationLine_ActionPlotResRefID_t_ResRef
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_ConversationLine_ConditionPlotResRefID_t_ResRef]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_ConversationLine] DROP CONSTRAINT FK_t_ConversationLine_ConditionPlotResRefID_t_ResRef
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_ConversationLine_t_ResRef]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_ConversationLine] DROP CONSTRAINT FK_t_ConversationLine_t_ResRef
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_ConversationLine_t_ResRef1]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_ConversationLine] DROP CONSTRAINT FK_t_ConversationLine_t_ResRef1
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_ConversationLine_t_ResRef2]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_ConversationLine] DROP CONSTRAINT FK_t_ConversationLine_t_ResRef2
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_ConversationLine_t_ResRef3]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_ConversationLine] DROP CONSTRAINT FK_t_ConversationLine_t_ResRef3
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_ConversationLine_t_ResRef4]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_ConversationLine] DROP CONSTRAINT FK_t_ConversationLine_t_ResRef4
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_ConversationLine_t_ResRef5]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_ConversationLine] DROP CONSTRAINT FK_t_ConversationLine_t_ResRef5
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_ConversationTagMap_t_ResRef]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_ConversationTagMap] DROP CONSTRAINT FK_t_ConversationTagMap_t_ResRef
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_Creature_t_ResRef]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_Creature] DROP CONSTRAINT FK_t_Creature_t_ResRef
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_Creature_t_ResRef1]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_Creature] DROP CONSTRAINT FK_t_Creature_t_ResRef1
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_Creature_t_ResRef2]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_Creature] DROP CONSTRAINT FK_t_Creature_t_ResRef2
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_Cutscene_t_ResRef]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_Cutscene] DROP CONSTRAINT FK_t_Cutscene_t_ResRef
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_Cutscene_t_ResRef1]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_Cutscene] DROP CONSTRAINT FK_t_Cutscene_t_ResRef1
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_Cutscene_t_ResRef2]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_Cutscene] DROP CONSTRAINT FK_t_Cutscene_t_ResRef2
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_CutsceneAction_t_ResRef]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_CutsceneAction] DROP CONSTRAINT FK_t_CutsceneAction_t_ResRef
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_CutsceneObject_t_ResRef]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_CutsceneObject] DROP CONSTRAINT FK_t_CutsceneObject_t_ResRef
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_Inventory_t_ResRef]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_Inventory] DROP CONSTRAINT FK_t_Inventory_t_ResRef
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_Item_t_ResRef]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_Item] DROP CONSTRAINT FK_t_Item_t_ResRef
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_Merchant_t_ResRef]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_Merchant] DROP CONSTRAINT FK_t_Merchant_t_ResRef
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_Module_t_ResRef]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_Module] DROP CONSTRAINT FK_t_Module_t_ResRef
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_Module_t_ResRef1]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_Module] DROP CONSTRAINT FK_t_Module_t_ResRef1
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_Module_t_ResRef2]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_Module] DROP CONSTRAINT FK_t_Module_t_ResRef2
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_ModuleResRef_t_ResRef]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_ModuleResRef] DROP CONSTRAINT FK_t_ModuleResRef_t_ResRef
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_Conversation_t_ResRef2]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_Placeable] DROP CONSTRAINT FK_t_Conversation_t_ResRef2
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_Placeable_t_ResRef]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_Placeable] DROP CONSTRAINT FK_t_Placeable_t_ResRef
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_Placeable_t_ResRef1]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_Placeable] DROP CONSTRAINT FK_t_Placeable_t_ResRef1
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_Plot_ParentPlotResRefID_t_ResRef]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_Plot] DROP CONSTRAINT FK_t_Plot_ParentPlotResRefID_t_ResRef
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_Plot_ScriptResRefID_t_ResRef]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_Plot] DROP CONSTRAINT FK_t_Plot_ScriptResRefID_t_ResRef
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_Plot_t_ResRef]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_Plot] DROP CONSTRAINT FK_t_Plot_t_ResRef
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_Script_Reference_t_ResRef]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_Script_Reference] DROP CONSTRAINT FK_t_Script_Reference_t_ResRef
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_Stage_t_ResRef]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_Stage] DROP CONSTRAINT FK_t_Stage_t_ResRef
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_StringSound_t_ResRef]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_StringSound] DROP CONSTRAINT FK_t_StringSound_t_ResRef
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_StringVersion_t_ResRef]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_StringVersion] DROP CONSTRAINT FK_t_StringVersion_t_ResRef
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_Trigger_t_ResRef]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_Trigger] DROP CONSTRAINT FK_t_Trigger_t_ResRef
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_ModuleAssociation_t_Module]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_ModuleAssociation] DROP CONSTRAINT FK_t_ModuleAssociation_t_Module
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_ModuleAssociation_t_Module1]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_ModuleAssociation] DROP CONSTRAINT FK_t_ModuleAssociation_t_Module1
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_ModuleResRef_t_Module]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_ModuleResRef] DROP CONSTRAINT FK_t_ModuleResRef_t_Module
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_ModuleResRefVersion_t_Module]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_ModuleResRefVersion] DROP CONSTRAINT FK_t_ModuleResRefVersion_t_Module
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_ModuleVariable_t_Module]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_ModuleVariable] DROP CONSTRAINT FK_t_ModuleVariable_t_Module
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_AreaAudioVolume_t_Area]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_AreaAudioVolume] DROP CONSTRAINT FK_t_AreaAudioVolume_t_Area
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_AreaInstanceAssociations_t_Area]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_AreaInstanceAssociations] DROP CONSTRAINT FK_t_AreaInstanceAssociations_t_Area
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_AreaMusicVolume_t_Area]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_AreaMusicVolume] DROP CONSTRAINT FK_t_AreaMusicVolume_t_Area
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_AreaObject_t_Area]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_AreaObject] DROP CONSTRAINT FK_t_AreaObject_t_Area
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_AreaReverbVolume_t_Area]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_AreaReverbVolume] DROP CONSTRAINT FK_t_AreaReverbVolume_t_Area
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_AreaSound_t_Area]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_AreaSound] DROP CONSTRAINT FK_t_AreaSound_t_Area
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_AreaWaypoint_t_Area]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_AreaWaypoint] DROP CONSTRAINT FK_t_AreaWaypoint_t_Area
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_ConversationCinematics_t_Conversation]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_ConversationCinematics] DROP CONSTRAINT FK_t_ConversationCinematics_t_Conversation
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_ConversationLine_t_Conversation]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_ConversationLine] DROP CONSTRAINT FK_t_ConversationLine_t_Conversation
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_ConversationTransit_t_Conversation]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_ConversationTransition] DROP CONSTRAINT FK_t_ConversationTransit_t_Conversation
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_ConversationAnimations_t_ConversationLine]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_ConversationAnimations] DROP CONSTRAINT FK_t_ConversationAnimations_t_ConversationLine
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_CreatureAbility_t_Creature]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_CreatureAbility] DROP CONSTRAINT FK_t_CreatureAbility_t_Creature
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_CutsceneObject_t_Cutscene]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_CutsceneObject] DROP CONSTRAINT FK_t_CutsceneObject_t_Cutscene
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_CutsceneActionFBEParameter_t_CutsceneAction]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_CutsceneActionFBEParameter] DROP CONSTRAINT FK_t_CutsceneActionFBEParameter_t_CutsceneAction
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_CutsceneActionTransition_t_CutsceneAction]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_CutsceneActionTransition] DROP CONSTRAINT FK_t_CutsceneActionTransition_t_CutsceneAction
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_CutsceneActionTransition_t_CutsceneAction1]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_CutsceneActionTransition] DROP CONSTRAINT FK_t_CutsceneActionTransition_t_CutsceneAction1
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_CutsceneTrack_t_CutsceneObject]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_CutsceneTrack] DROP CONSTRAINT FK_t_CutsceneTrack_t_CutsceneObject
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_CutsceneAction_t_CutsceneTrack]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_CutsceneAction] DROP CONSTRAINT FK_t_CutsceneAction_t_CutsceneTrack
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_ItemProperty_t_Item]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_ItemProperty] DROP CONSTRAINT FK_t_ItemProperty_t_Item
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_MerchantRestrictedItem_t_Merchant]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_MerchantRestrictedItem] DROP CONSTRAINT FK_t_MerchantRestrictedItem_t_Merchant
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_ModuleResRefVersion_t_ModuleResRef]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_ModuleResRefVersion] DROP CONSTRAINT FK_t_ModuleResRefVersion_t_ModuleResRef
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_VOScript_t_ModuleResRef_Character]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_VOScript] DROP CONSTRAINT FK_t_VOScript_t_ModuleResRef_Character
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_VOScript_t_ModuleResRef_Resource]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_VOScript] DROP CONSTRAINT FK_t_VOScript_t_ModuleResRef_Resource
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_Area_t_ModuleResRefVersion]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_Area] DROP CONSTRAINT FK_t_Area_t_ModuleResRefVersion
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_AreaList_t_ModuleResRefVersion]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_AreaList] DROP CONSTRAINT FK_t_AreaList_t_ModuleResRefVersion
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_AssociatedResource_t_ModuleResRefVersion]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_AssociatedResource] DROP CONSTRAINT FK_t_AssociatedResource_t_ModuleResRefVersion
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_Character_t_ModuleResRefVersion]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_Character] DROP CONSTRAINT FK_t_Character_t_ModuleResRefVersion
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_Conversation_t_ModuleResRefVersion]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_Conversation] DROP CONSTRAINT FK_t_Conversation_t_ModuleResRefVersion
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_ConversationTagMap_t_ModuleResRefVersion]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_ConversationTagMap] DROP CONSTRAINT FK_t_ConversationTagMap_t_ModuleResRefVersion
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_Creature_t_ModuleResRefVersion]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_Creature] DROP CONSTRAINT FK_t_Creature_t_ModuleResRefVersion
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_Cutscene_t_ModuleResRefVersion]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_Cutscene] DROP CONSTRAINT FK_t_Cutscene_t_ModuleResRefVersion
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_Inventory_t_ModuleResRefVersion]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_Inventory] DROP CONSTRAINT FK_t_Inventory_t_ModuleResRefVersion
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_Item_t_ModuleResRefVersion]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_Item] DROP CONSTRAINT FK_t_Item_t_ModuleResRefVersion
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_Map_t_ModuleResRefVersion]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_Map] DROP CONSTRAINT FK_t_Map_t_ModuleResRefVersion
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_Merchant_t_ModuleResRefVersion]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_Merchant] DROP CONSTRAINT FK_t_Merchant_t_ModuleResRefVersion
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_ModuleResRef_C_t_ModuleResRefVersion]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_ModuleResRef] DROP CONSTRAINT FK_t_ModuleResRef_C_t_ModuleResRefVersion
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_ModuleResRef_S_t_ModuleResRefVersion]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_ModuleResRef] DROP CONSTRAINT FK_t_ModuleResRef_S_t_ModuleResRefVersion
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_Placeable_t_ModuleResRefVersion]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_Placeable] DROP CONSTRAINT FK_t_Placeable_t_ModuleResRefVersion
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_Plot_t_ModuleResRefVersion]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_Plot] DROP CONSTRAINT FK_t_Plot_t_ModuleResRefVersion
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_Role_t_ModuleResRefVersion]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_Role] DROP CONSTRAINT FK_t_Role_t_ModuleResRefVersion
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_Script_t_ModuleResRefVersion]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_Script] DROP CONSTRAINT FK_t_Script_t_ModuleResRefVersion
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_Stage_t_ModuleResRefVersion]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_Stage] DROP CONSTRAINT FK_t_Stage_t_ModuleResRefVersion
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_StringVersion_t_ModuleResRefVersion]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_StringVersion] DROP CONSTRAINT FK_t_StringVersion_t_ModuleResRefVersion
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_Trigger_t_ModuleResRefVersion]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_Trigger] DROP CONSTRAINT FK_t_Trigger_t_ModuleResRefVersion
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_Variable_t_ModuleResRefVersion]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_Variable] DROP CONSTRAINT FK_t_Variable_t_ModuleResRefVersion
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_PlotStatus_t_Plot]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_PlotStatus] DROP CONSTRAINT FK_t_PlotStatus_t_Plot
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_PlotAssist_t_PlotStatus]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_PlotAssist] DROP CONSTRAINT FK_t_PlotAssist_t_PlotStatus
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_Script_Reference_t_Script]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_Script_Reference] DROP CONSTRAINT FK_t_Script_Reference_t_Script
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_StageObject_t_Stage]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_StageObject] DROP CONSTRAINT FK_t_StageObject_t_Stage
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_StringLanguageTag_StringLanguage]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_StringLanguageTag] DROP CONSTRAINT FK_StringLanguageTag_StringLanguage
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_StringLanguageVariant_t_StringLanguage]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_StringLanguageVariant] DROP CONSTRAINT FK_t_StringLanguageVariant_t_StringLanguage
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_VOScriptInstance_t_StringLanguage]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_VOScriptInstance] DROP CONSTRAINT FK_t_VOScriptInstance_t_StringLanguage
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_VOSession_t_StringLanguage]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_VOSession] DROP CONSTRAINT FK_t_VOSession_t_StringLanguage
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_StringLanguage_StringLanguageTag]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_StringLanguage] DROP CONSTRAINT FK_StringLanguage_StringLanguageTag
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_StringLanguageVariantVersion_StringLanguageVariant]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_StringLanguageVariantVersion] DROP CONSTRAINT FK_StringLanguageVariantVersion_StringLanguageVariant
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_StringText_t_StringLanguageVariant]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_StringText] DROP CONSTRAINT FK_t_StringText_t_StringLanguageVariant
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_VOScriptStringRevision_t_StringLanguageVariant]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_VOScriptStringRevision] DROP CONSTRAINT FK_t_VOScriptStringRevision_t_StringLanguageVariant
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_StringLanguageVariant_StringLanguageVariantVersion_1]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_StringLanguageVariant] DROP CONSTRAINT FK_StringLanguageVariant_StringLanguageVariantVersion_1
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_StringLanguageVariant_StringLanguageVariantVersion_2]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_StringLanguageVariant] DROP CONSTRAINT FK_StringLanguageVariant_StringLanguageVariantVersion_2
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_StringLanguageVariantText_StringLanguageVariantVersion]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_StringLanguageVariantText] DROP CONSTRAINT FK_StringLanguageVariantText_StringLanguageVariantVersion
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_StringLanguageVariantVersion_StringLanguageVariantVersion]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_StringLanguageVariantVersion] DROP CONSTRAINT FK_StringLanguageVariantVersion_StringLanguageVariantVersion
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_VOScriptInstanceString_t_StringLanguageVariantVersion]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_VOScriptInstanceString] DROP CONSTRAINT FK_t_VOScriptInstanceString_t_StringLanguageVariantVersion
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_VOScriptInstanceString_t_StringText]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_VOScriptInstanceString] DROP CONSTRAINT FK_t_VOScriptInstanceString_t_StringText
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_StringText_t_StringVersion]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_StringText] DROP CONSTRAINT FK_t_StringText_t_StringVersion
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_VOScriptBatchPrint_t_VOScript]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_VOScriptBatchPrint] DROP CONSTRAINT FK_t_VOScriptBatchPrint_t_VOScript
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_VOScriptInstance_t_VOScript]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_VOScriptInstance] DROP CONSTRAINT FK_t_VOScriptInstance_t_VOScript
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_AreaAudioVolumeGeometry_t_AreaAudioVolume]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_AreaAudioVolumeGeometry] DROP CONSTRAINT FK_t_AreaAudioVolumeGeometry_t_AreaAudioVolume
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_AreaAudioVolumeSound_t_AreaAudioVolume]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_AreaAudioVolumeSound] DROP CONSTRAINT FK_t_AreaAudioVolumeSound_t_AreaAudioVolume
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_AreaReverbVolumeGeometry_t_AreaReverbVolume]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_AreaReverbVolumeGeometry] DROP CONSTRAINT FK_t_AreaReverbVolumeGeometry_t_AreaReverbVolume
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_MapTrailPoint_t_MapTrail]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_MapTrailPoint] DROP CONSTRAINT FK_t_MapTrailPoint_t_MapTrail
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_AreaMusicVolumeGeometry_t_AreaMusicVolume]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_AreaMusicVolumeGeometry] DROP CONSTRAINT FK_t_AreaMusicVolumeGeometry_t_AreaMusicVolume
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_AreaObjectGeometry_t_AreaObject]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_AreaObjectGeometry] DROP CONSTRAINT FK_t_AreaObjectGeometry_t_AreaObject
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_AreaObjectVariable_t_AreaObject]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_AreaObjectVariable] DROP CONSTRAINT FK_t_AreaObjectVariable_t_AreaObject
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_MapPin_t_Map]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_MapPin] DROP CONSTRAINT FK_t_MapPin_t_Map
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_MapTrail_t_Map]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_MapTrail] DROP CONSTRAINT FK_t_MapTrail_t_Map
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_StageFBEParameter_t_StageObject]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_StageFBEParameter] DROP CONSTRAINT FK_t_StageFBEParameter_t_StageObject
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_StageObjectReference_t_StageObject]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_StageObjectReference] DROP CONSTRAINT FK_t_StageObjectReference_t_StageObject
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_VOScriptBatchPrint_t_VOScriptInstance]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_VOScriptBatchPrint] DROP CONSTRAINT FK_t_VOScriptBatchPrint_t_VOScriptInstance
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_VOScriptInstanceString_t_VOScriptInstance]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_VOScriptInstanceString] DROP CONSTRAINT FK_t_VOScriptInstanceString_t_VOScriptInstance
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_VOSessionInstanceVersion_t_VOScriptInstance]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_VOSessionInstanceVersion] DROP CONSTRAINT FK_t_VOSessionInstanceVersion_t_VOScriptInstance
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_VOScriptBatchPrint_t_VOScriptInstanceString]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_VOScriptBatchPrint] DROP CONSTRAINT FK_t_VOScriptBatchPrint_t_VOScriptInstanceString
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_VOScriptInstanceString_t_VOScriptInstanceString]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_VOScriptInstanceString] DROP CONSTRAINT FK_t_VOScriptInstanceString_t_VOScriptInstanceString
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_VOScriptInstanceStringStatus_t_VOScriptInstanceString]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_VOScriptInstanceStringStatus] DROP CONSTRAINT FK_t_VOScriptInstanceStringStatus_t_VOScriptInstanceString
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_VOSessionInstanceVersion_t_VOSession]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_VOSessionInstanceVersion] DROP CONSTRAINT FK_t_VOSessionInstanceVersion_t_VOSession
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_t_VOSessionVersion_t_VOSession]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[t_VOSessionVersion] DROP CONSTRAINT FK_t_VOSessionVersion_t_VOSession
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[trg_ModuleType_Update]') and OBJECTPROPERTY(id, N'IsTrigger') = 1)
drop trigger [dbo].[trg_ModuleType_Update]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[trg_ResourceTables_Update]') and OBJECTPROPERTY(id, N'IsTrigger') = 1)
drop trigger [dbo].[trg_ResourceTables_Update]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[trg_StringExportLabel_Update]') and OBJECTPROPERTY(id, N'IsTrigger') = 1)
drop trigger [dbo].[trg_StringExportLabel_Update]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[trg_StringTable_Update]') and OBJECTPROPERTY(id, N'IsTrigger') = 1)
drop trigger [dbo].[trg_StringTable_Update]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[trg_StringType_Update]') and OBJECTPROPERTY(id, N'IsTrigger') = 1)
drop trigger [dbo].[trg_StringType_Update]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[trg_StringVariant_Update]') and OBJECTPROPERTY(id, N'IsTrigger') = 1)
drop trigger [dbo].[trg_StringVariant_Update]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[trg_VOScriptInstanceManagementInsert]') and OBJECTPROPERTY(id, N'IsTrigger') = 1)
drop trigger [dbo].[trg_VOScriptInstanceManagementInsert]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[trg_ResourceDefinition_Update]') and OBJECTPROPERTY(id, N'IsTrigger') = 1)
drop trigger [dbo].[trg_ResourceDefinition_Update]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[trg_ResourceTableRelationship_Update]') and OBJECTPROPERTY(id, N'IsTrigger') = 1)
drop trigger [dbo].[trg_ResourceTableRelationship_Update]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[trg_String_Update]') and OBJECTPROPERTY(id, N'IsTrigger') = 1)
drop trigger [dbo].[trg_String_Update]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[trg_Module_Delete]') and OBJECTPROPERTY(id, N'IsTrigger') = 1)
drop trigger [dbo].[trg_Module_Delete]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[trg_Module_Update]') and OBJECTPROPERTY(id, N'IsTrigger') = 1)
drop trigger [dbo].[trg_Module_Update]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[trg_StringSound_Update]') and OBJECTPROPERTY(id, N'IsTrigger') = 1)
drop trigger [dbo].[trg_StringSound_Update]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[trg_ModuleAssociation_Update]') and OBJECTPROPERTY(id, N'IsTrigger') = 1)
drop trigger [dbo].[trg_ModuleAssociation_Update]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[trg_ModuleResRef_Update]') and OBJECTPROPERTY(id, N'IsTrigger') = 1)
drop trigger [dbo].[trg_ModuleResRef_Update]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[trg_Script_Update]') and OBJECTPROPERTY(id, N'IsTrigger') = 1)
drop trigger [dbo].[trg_Script_Update]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[trg_StringLanguage_Update]') and OBJECTPROPERTY(id, N'IsTrigger') = 1)
drop trigger [dbo].[trg_StringLanguage_Update]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[trg_StringLanguageVariant_Update]') and OBJECTPROPERTY(id, N'IsTrigger') = 1)
drop trigger [dbo].[trg_StringLanguageVariant_Update]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[trg_StringText_Update]') and OBJECTPROPERTY(id, N'IsTrigger') = 1)
drop trigger [dbo].[trg_StringText_Update]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[trg_StringText_Insert]') and OBJECTPROPERTY(id, N'IsTrigger') = 1)
drop trigger [dbo].[trg_StringText_Insert]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[trg_VOSessionInstanceVersionInsert]') and OBJECTPROPERTY(id, N'IsTrigger') = 1)
drop trigger [dbo].[trg_VOSessionInstanceVersionInsert]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[trg_VOSessionVersionInsert]') and OBJECTPROPERTY(id, N'IsTrigger') = 1)
drop trigger [dbo].[trg_VOSessionVersionInsert]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[trg_VOScriptInstanceInsert]') and OBJECTPROPERTY(id, N'IsTrigger') = 1)
drop trigger [dbo].[trg_VOScriptInstanceInsert]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[trg_VOScriptInstanceStringInsert]') and OBJECTPROPERTY(id, N'IsTrigger') = 1)
drop trigger [dbo].[trg_VOScriptInstanceStringInsert]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[trg_VOScriptInstanceStringUpdate]') and OBJECTPROPERTY(id, N'IsTrigger') = 1)
drop trigger [dbo].[trg_VOScriptInstanceStringUpdate]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[trg_VOScriptInstanceStringStatus_Insert]') and OBJECTPROPERTY(id, N'IsTrigger') = 1)
drop trigger [dbo].[trg_VOScriptInstanceStringStatus_Insert]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[udf_GetModuleResRefVersionID]') and xtype in (N'FN', N'IF', N'TF'))
drop function [dbo].[udf_GetModuleResRefVersionID]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[udf_GetProcessedIncludes]') and xtype in (N'FN', N'IF', N'TF'))
drop function [dbo].[udf_GetProcessedIncludes]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[udf_GetResourceName]') and xtype in (N'FN', N'IF', N'TF'))
drop function [dbo].[udf_GetResourceName]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[udf_GetResourceTag]') and xtype in (N'FN', N'IF', N'TF'))
drop function [dbo].[udf_GetResourceTag]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[udf_GetStringIDsWithVOHardTiming]') and xtype in (N'FN', N'IF', N'TF'))
drop function [dbo].[udf_GetStringIDsWithVOHardTiming]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[udf_GetVOScriptConversationLineCounts]') and xtype in (N'FN', N'IF', N'TF'))
drop function [dbo].[udf_GetVOScriptConversationLineCounts]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[udf_ParseIncludesFromScript]') and xtype in (N'FN', N'IF', N'TF'))
drop function [dbo].[udf_ParseIncludesFromScript]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[udf_StringsRequiringTranslation]') and xtype in (N'FN', N'IF', N'TF'))
drop function [dbo].[udf_StringsRequiringTranslation]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[udf_GetLockPermission]') and xtype in (N'FN', N'IF', N'TF'))
drop function [dbo].[udf_GetLockPermission]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[udf_GetModuleHierarchy]') and xtype in (N'FN', N'IF', N'TF'))
drop function [dbo].[udf_GetModuleHierarchy]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[udf_GetProjectStringLanguageID]') and xtype in (N'FN', N'IF', N'TF'))
drop function [dbo].[udf_GetProjectStringLanguageID]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[udf_GetTopLevelFolder]') and xtype in (N'FN', N'IF', N'TF'))
drop function [dbo].[udf_GetTopLevelFolder]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[udf_TextEquals]') and xtype in (N'FN', N'IF', N'TF'))
drop function [dbo].[udf_TextEquals]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[udf_WordCount]') and xtype in (N'FN', N'IF', N'TF'))
drop function [dbo].[udf_WordCount]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[udf_nTextEquals]') and xtype in (N'FN', N'IF', N'TF'))
drop function [dbo].[udf_nTextEquals]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[bsp_AddResRef]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[bsp_AddResRef]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[bsp_AddString]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[bsp_AddString]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[bsp_AdjustVOScriptLineCharacterInternalForStats]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[bsp_AdjustVOScriptLineCharacterInternalForStats]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[bsp_AreaObjectInstanceChanges]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[bsp_AreaObjectInstanceChanges]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[bsp_BatchPrintVOScriptLines]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[bsp_BatchPrintVOScriptLines]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[bsp_CheckinResource]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[bsp_CheckinResource]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[bsp_CheckoutResource]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[bsp_CheckoutResource]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[bsp_CreateNewStringVersion]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[bsp_CreateNewStringVersion]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[bsp_CreateScratchStringLanguageVariantVersion]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[bsp_CreateScratchStringLanguageVariantVersion]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[bsp_CreateVOSession]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[bsp_CreateVOSession]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[bsp_DeleteResource]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[bsp_DeleteResource]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[bsp_DeleteString]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[bsp_DeleteString]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[bsp_DetermineVOScriptLineCharacters]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[bsp_DetermineVOScriptLineCharacters]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[bsp_DoNotReRecordVOScriptString]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[bsp_DoNotReRecordVOScriptString]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[bsp_GetAllStringsRequiringRecording]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[bsp_GetAllStringsRequiringRecording]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[bsp_GetAreaList]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[bsp_GetAreaList]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[bsp_GetAreaListList]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[bsp_GetAreaListList]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[bsp_GetCharacterLineCountsPerResource]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[bsp_GetCharacterLineCountsPerResource]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[bsp_GetCharacterList]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[bsp_GetCharacterList]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[bsp_GetCharacterWordAndLineCounts]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[bsp_GetCharacterWordAndLineCounts]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[bsp_GetConversationTagToCharacterList]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[bsp_GetConversationTagToCharacterList]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[bsp_GetForeignText]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[bsp_GetForeignText]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[bsp_GetInvalidConversationTagCharacters]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[bsp_GetInvalidConversationTagCharacters]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[bsp_GetLocalizationStatistics]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[bsp_GetLocalizationStatistics]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[bsp_GetMostRecentLocalizationDatesForVOScript]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[bsp_GetMostRecentLocalizationDatesForVOScript]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[bsp_GetResourceHistoryListByID]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[bsp_GetResourceHistoryListByID]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[bsp_GetResourceInfoByID]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[bsp_GetResourceInfoByID]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[bsp_GetResourceInfoByName]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[bsp_GetResourceInfoByName]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[bsp_GetResourceListByModuleAndType]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[bsp_GetResourceListByModuleAndType]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[bsp_GetResourceReferenceList]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[bsp_GetResourceReferenceList]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[bsp_GetRoleList]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[bsp_GetRoleList]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[bsp_GetVOScriptMaintenanceData]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[bsp_GetVOScriptMaintenanceData]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[bsp_GetVOScriptStats]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[bsp_GetVOScriptStats]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[bsp_GetVOScriptStringsRequiringForeignRecording]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[bsp_GetVOScriptStringsRequiringForeignRecording]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[bsp_GetVOScriptStringsRequiringRecording]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[bsp_GetVOScriptStringsRequiringRecording]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[bsp_ImportStringsNotInRange]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[bsp_ImportStringsNotInRange]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[bsp_InsertStringLanguageVariantText]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[bsp_InsertStringLanguageVariantText]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[bsp_LockResource]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[bsp_LockResource]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[bsp_ProcessPendingStringExportHistoryStatus]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[bsp_ProcessPendingStringExportHistoryStatus]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[bsp_ProcessStringImportData]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[bsp_ProcessStringImportData]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[bsp_RerecordVOScript]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[bsp_RerecordVOScript]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[bsp_RestoreResourceVersion]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[bsp_RestoreResourceVersion]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[bsp_SetStringReTranslationState]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[bsp_SetStringReTranslationState]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[bsp_UndoStringImportSession]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[bsp_UndoStringImportSession]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[bsp_UnprintVOScriptInstance]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[bsp_UnprintVOScriptInstance]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[bsp_UpdateResourceProperties]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[bsp_UpdateResourceProperties]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[bsp_UpdateVOScriptListing]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[bsp_UpdateVOScriptListing]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[bsp_ValidateResRefName]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[bsp_ValidateResRefName]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[bsp_AddModuleAssociation]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[bsp_AddModuleAssociation]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[bsp_AddNewModule]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[bsp_AddNewModule]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[bsp_DeleteModuleAssociations]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[bsp_DeleteModuleAssociations]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[bsp_AddStringTable]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[bsp_AddStringTable]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[bsp_GetNextStringID]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[bsp_GetNextStringID]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[bsp_CreateStringExportLabel]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[bsp_CreateStringExportLabel]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[bsp_CreateStringImportSession]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[bsp_CreateStringImportSession]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[bsp_CreateVOSessionInstance]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[bsp_CreateVOSessionInstance]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[bsp_GetResourceLineCharacters]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[bsp_GetResourceLineCharacters]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[bsp_SetCurrentStringImportSession]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[bsp_SetCurrentStringImportSession]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[bsp_CreateNewResourceVersion]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[bsp_CreateNewResourceVersion]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[bsp_GetLocalizationStatisticsVerbose]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[bsp_GetLocalizationStatisticsVerbose]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[v_ConversationLineSpeakerTag]') and OBJECTPROPERTY(id, N'IsView') = 1)
drop view [dbo].[v_ConversationLineSpeakerTag]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[v_StringVersionText]') and OBJECTPROPERTY(id, N'IsView') = 1)
drop view [dbo].[v_StringVersionText]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[v_StringsRequiringTranslation]') and OBJECTPROPERTY(id, N'IsView') = 1)
drop view [dbo].[v_StringsRequiringTranslation]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[v_StringsRequiringTranslationByResourceVersion]') and OBJECTPROPERTY(id, N'IsView') = 1)
drop view [dbo].[v_StringsRequiringTranslationByResourceVersion]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[v_UserResourceInfo]') and OBJECTPROPERTY(id, N'IsView') = 1)
drop view [dbo].[v_UserResourceInfo]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[v_VOScriptStringLanguageVariant]') and OBJECTPROPERTY(id, N'IsView') = 1)
drop view [dbo].[v_VOScriptStringLanguageVariant]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[v_ModuleTree]') and OBJECTPROPERTY(id, N'IsView') = 1)
drop view [dbo].[v_ModuleTree]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[t_AreaList]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[t_AreaList]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[t_AreaMusicVolume]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[t_AreaMusicVolume]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[t_AreaObject]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[t_AreaObject]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[t_AssociatedResource]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[t_AssociatedResource]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[t_Character]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[t_Character]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[t_ConversationCinematics]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[t_ConversationCinematics]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[t_ConversationTagMap]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[t_ConversationTagMap]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[t_ConversationTransition]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[t_ConversationTransition]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[t_Inventory]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[t_Inventory]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[t_Map]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[t_Map]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[t_Role]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[t_Role]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[t_StageObject]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[t_StageObject]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[t_StringLanguageVariantText]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[t_StringLanguageVariantText]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[t_VOScriptBatchPrint]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[t_VOScriptBatchPrint]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[t_VOScriptInstance]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[t_VOScriptInstance]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[t_VOScriptInstanceString]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[t_VOScriptInstanceString]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[t_VOScriptInstanceStringStatus]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[t_VOScriptInstanceStringStatus]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[t_VOScriptStringRevision]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[t_VOScriptStringRevision]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[t_VOSession]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[t_VOSession]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[t_AreaAudioVolume]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[t_AreaAudioVolume]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[t_AreaAudioVolumeGeometry]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[t_AreaAudioVolumeGeometry]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[t_AreaAudioVolumeSound]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[t_AreaAudioVolumeSound]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[t_AreaInstanceAssociations]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[t_AreaInstanceAssociations]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[t_AreaMusicVolumeGeometry]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[t_AreaMusicVolumeGeometry]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[t_AreaObjectGeometry]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[t_AreaObjectGeometry]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[t_AreaObjectVariable]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[t_AreaObjectVariable]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[t_AreaReverbVolume]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[t_AreaReverbVolume]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[t_AreaReverbVolumeGeometry]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[t_AreaReverbVolumeGeometry]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[t_AreaSound]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[t_AreaSound]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[t_AreaWaypoint]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[t_AreaWaypoint]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[t_ConversationAnimations]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[t_ConversationAnimations]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[t_CreatureAbility]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[t_CreatureAbility]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[t_CutsceneActionFBEParameter]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[t_CutsceneActionFBEParameter]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[t_CutsceneActionTransition]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[t_CutsceneActionTransition]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[t_ItemProperty]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[t_ItemProperty]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[t_MapPin]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[t_MapPin]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[t_MapTrail]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[t_MapTrail]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[t_MapTrailPoint]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[t_MapTrailPoint]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[t_MerchantRestrictedItem]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[t_MerchantRestrictedItem]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[t_PlotAssist]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[t_PlotAssist]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[t_StageFBEParameter]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[t_StageFBEParameter]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[t_StageObjectReference]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[t_StageObjectReference]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[t_VOSessionInstanceVersion]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[t_VOSessionInstanceVersion]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[t_VOSessionVersion]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[t_VOSessionVersion]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[t_Variable]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[t_Variable]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[t_Area]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[t_Area]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[t_Conversation]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[t_Conversation]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[t_ConversationLine]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[t_ConversationLine]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[t_Creature]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[t_Creature]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[t_Cutscene]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[t_Cutscene]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[t_CutsceneAction]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[t_CutsceneAction]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[t_CutsceneObject]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[t_CutsceneObject]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[t_CutsceneTrack]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[t_CutsceneTrack]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[t_Item]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[t_Item]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[t_Merchant]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[t_Merchant]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[t_ModuleResRef]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[t_ModuleResRef]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[t_ModuleResRefVersion]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[t_ModuleResRefVersion]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[t_Placeable]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[t_Placeable]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[t_Plot]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[t_Plot]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[t_PlotStatus]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[t_PlotStatus]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[t_Script]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[t_Script]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[t_Script_Reference]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[t_Script_Reference]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[t_Stage]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[t_Stage]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[t_StringLanguage]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[t_StringLanguage]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[t_StringLanguageTag]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[t_StringLanguageTag]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[t_StringLanguageVariant]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[t_StringLanguageVariant]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[t_StringLanguageVariantVersion]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[t_StringLanguageVariantVersion]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[t_StringText]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[t_StringText]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[t_StringVersion]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[t_StringVersion]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[t_Trigger]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[t_Trigger]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[t_VOScript]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[t_VOScript]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[t_ModuleAssociation]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[t_ModuleAssociation]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[t_ModuleVariable]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[t_ModuleVariable]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[t_Module]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[t_Module]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[t_StringSound]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[t_StringSound]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[t_ResRef]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[t_ResRef]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[t_StringExportHistoryAdjustmentLog]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[t_StringExportHistoryAdjustmentLog]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[t_ResourceDefinition]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[t_ResourceDefinition]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[t_ResourceTableRelationship]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[t_ResourceTableRelationship]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[t_String]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[t_String]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[t_StringExportHistory]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[t_StringExportHistory]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[t_StringExportLabelResourceStats]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[t_StringExportLabelResourceStats]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[t_StringExportLabelStringTypeStats]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[t_StringExportLabelStringTypeStats]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[t_CharacterDelta]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[t_CharacterDelta]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[t_GlobalParameters]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[t_GlobalParameters]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[t_JobProcessInformation]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[t_JobProcessInformation]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[t_KeyGenStringID]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[t_KeyGenStringID]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[t_ModuleType]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[t_ModuleType]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[t_ResourceTables]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[t_ResourceTables]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[t_StringExportLabel]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[t_StringExportLabel]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[t_StringImportSession]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[t_StringImportSession]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[t_StringTable]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[t_StringTable]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[t_StringType]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[t_StringType]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[t_StringVariant]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[t_StringVariant]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[t_VOScriptInstanceManagement]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[t_VOScriptInstanceManagement]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[t_VOScriptLineCharacterInternal]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[t_VOScriptLineCharacterInternal]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[t_VOSessionInstance]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[t_VOSessionInstance]
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE FUNCTION [dbo].[udf_GetLockPermission] ()
RETURNS BIT AS
BEGIN
DECLARE @bValid BIT
select @bValid = case count(*) when 0 then 0 else 1 end
from sysusers u
join sysmembers m on u.uid = m.memberuid
join sysusers g on g.name = 'bw_db_lock'
and g.uid = m.groupuid
and g.issqlrole = 1
join master.dbo.syslogins sl on sl.sid = u.sid
and sl.loginname = suser_sname()
return (@bValid)
END
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
GRANT EXECUTE ON [dbo].[udf_GetLockPermission] TO [bw_db_read]
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS OFF
GO
CREATE FUNCTION [dbo].[udf_GetModuleHierarchy]
(@a_iModuleID int,
@a_bUseModuleHierarchy bit)
RETURNS @RESULT_SET TABLE (ModuleID int)
AS
BEGIN
IF (@a_bUseModuleHierarchy = 1)
BEGIN
INSERT @RESULT_SET
SELECT mt.AssociatedModuleID
FROM v_ModuleTree mt
WHERE mt.ModuleID = @a_iModuleID
END
ELSE
BEGIN
INSERT @RESULT_SET
SELECT @a_iModuleID
END
return
END
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
GRANT SELECT ON [dbo].[udf_GetModuleHierarchy] TO [bw_db_read]
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
------------------------------------------------------------------------------------------
-- udf_GetProjectStringLanguageID
-- Chris Christou
-- October 10, 2006
------------------------------------------------------------------------------------------
-- This function should be used to load up the StringLanguageID used for the project.
-- Hardcoding of a specific integer should be avoided in C++ and SQL code everywhere
-- except here.
--
-- Params: NOTHING
-- Returns: t_StringLanguage.[ID] of the language this project is being developed in.
-- Note: its probably English.
------------------------------------------------------------------------------------------
CREATE FUNCTION [dbo].[udf_GetProjectStringLanguageID] ( )
RETURNS int AS
BEGIN
------------------------------------------------------------------------
-- NOTE: We could select for the criteria where name = english, but
-- returning the ID (ie: hardcoding it here) will be more efficient.
------------------------------------------------------------------------
RETURN 1
END
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
GRANT EXECUTE ON [dbo].[udf_GetProjectStringLanguageID] TO [bw_db_read]
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
------------------------------------------------------------------------------------------
-- udf_GetTopLevelFolder
-- Chris Christou
-- April 09, 2008
------------------------------------------------------------------------------------------
-- Given a t_ModuleResRefVersion.Folder value, this returns the top level folder.
-- This returned value is assumed to be the "general plot" in the Localization world,
-- so this UDF is intended mostly as a convenience for some of the loc web reports.
--
-- A slash (\) character is looked for, and the first one found defines the folder.
-- If a slash is not found, the whole folder is returned.
--
-- Params: @a_sFolder -- t_ModuleResRefVersion.Folder value
-- Returns: varchar string of the top level folder.
--
------------------------------------------------------------------------------------------
CREATE FUNCTION [dbo].[udf_GetTopLevelFolder] ( @a_sFolder varchar(128) )
RETURNS varchar(128) AS
BEGIN
DECLARE @iPos int
-- Dont look in position one. Most folders start with the slash character.
SET @iPos = charindex('\', @a_sFolder, 2)
IF (@iPos = 0)
BEGIN
RETURN @a_sFolder
END
RETURN SUBSTRING(@a_sFolder, 1, @iPos)
END
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
GRANT EXECUTE ON [dbo].[udf_GetTopLevelFolder] TO [bw_db_read]
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
------------------------------------------------------------------------------------------
-- udf_TextEquals
-- Chris Christou
-- March 27, 2007
------------------------------------------------------------------------------------------
-- This function was copied from AndyD's udf_TextEquals on Mass Effect. It
-- is for TEXT comparisons, and not NTEXT comparisons.
--
-- Params: @a_t1, @a_t2 -- TEXT strings to compare
-- Returns: 1 if text is equal, 0 if not
-- Note: 0 is returned if either/both strings are NULL
--
------------------------------------------------------------------------------------------
CREATE FUNCTION [dbo].[udf_TextEquals] ( @a_t1 text, @a_t2 text )
RETURNS int AS
BEGIN
DECLARE @l_iLen INT
DECLARE @l_iBatch INT
DECLARE @l_iSteps INT
IF @a_t2 IS NULL OR @a_t1 IS NULL RETURN 0
SET @l_iLen = Datalength( @a_t1 )
IF @l_iLen <> Datalength( @a_t2 ) RETURN 0
SET @l_iSteps = CEILING( @l_iLen / 4000.0 )
SET @l_iBatch = 0
WHILE @l_iBatch < @l_iSteps
BEGIN
IF SUBSTRING( @a_t1, 1+@l_iBatch*4000, 4000 ) <> SUBSTRING( @a_t2, 1+@l_iBatch*4000, 4000 ) return 0
SET @l_iBatch = @l_iBatch + 1
END
RETURN 1
END
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
GRANT EXECUTE ON [dbo].[udf_TextEquals] TO [bw_db_read]
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE FUNCTION [dbo].[udf_WordCount] (@a_tString text)
RETURNS INT AS
BEGIN
IF (@a_tString IS NULL OR @a_tString LIKE '' )
RETURN 0
DECLARE @sSeparator VARCHAR(10)
, @iWords INT
, @bInWord BIT
, @iLength INT
, @iCur INT
, @iSign INT
Select @sSeparator = SPACE(1) + CHAR(9) + CHAR(10) + CHAR(13)
, @iLength = DATALENGTH(@a_tString)
, @iWords = 0
, @iCur = 1
, @bInWord = 0
WHILE @iCur <= @iLength
BEGIN
SELECT @iSign = 1 - SIGN(CHARINDEX(SUBSTRING( @a_tString, @iCur, 1 ), @sSeparator))
, @iWords = @iWords + ((@bInWord - @iSign) * @bInWord)
, @bInWord = @iSign
, @iCur = @iCur + 1
END
RETURN (@iWords + @bInWord)
END
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
GRANT EXECUTE ON [dbo].[udf_WordCount] TO [bw_db_read]
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
------------------------------------------------------------------------------------------
-- udf_nTextEquals
-- Chris Christou
-- June 26, 2006
------------------------------------------------------------------------------------------
-- This function is similar to AndyD's udf_TextEquals on Mass Effect, only it
-- is for NTEXT and not TEXT comparisons.
--
-- Params: @a_t1, @a_t2 -- NTEXT strings to compare
-- Returns: 1 if text is equal, 0 if not
-- Note: 0 is returned if either/both strings are NULL
--
------------------------------------------------------------------------------------------
CREATE FUNCTION [dbo].[udf_nTextEquals] ( @a_t1 ntext, @a_t2 ntext )
RETURNS int AS
BEGIN
DECLARE @l_iLen INT
DECLARE @l_iBatch INT
DECLARE @l_iSteps INT
IF @a_t2 IS NULL OR @a_t1 IS NULL RETURN 0
SET @l_iLen = DATALENGTH( @a_t1 ) / 2
IF @l_iLen <> (DATALENGTH( @a_t2 ) / 2) RETURN 0
-- 4000 is the max amount of nText that can be processed at once
SET @l_iSteps = CEILING( @l_iLen / 4000.0 )
SET @l_iBatch = 0
WHILE @l_iBatch < @l_iSteps
BEGIN
IF SUBSTRING( @a_t1, 1+@l_iBatch*4000, 4000 ) <> SUBSTRING( @a_t2, 1+@l_iBatch*4000, 4000 ) COLLATE SQL_Latin1_General_CP1_CS_AS return 0
SET @l_iBatch = @l_iBatch + 1
END
RETURN 1
END
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
GRANT EXECUTE ON [dbo].[udf_nTextEquals] TO [bw_db_read]
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE FUNCTION [dbo].[udf_GetModuleResRefVersionID] (
@a_iResRefID int, @a_iModuleID int, @a_bUseModuleTree bit, @a_sUserName varchar(32))
RETURNS int AS
BEGIN
declare @iVersionID int
select @iVersionID = (select isnull(mrrvs.id, mrrvc.id)
from t_ModuleResRef mrr
join t_ModuleResRefVersion mrrvc on mrr.CurrentModuleResRefVersionID = mrrvc.ID
left outer join t_ModuleResRefVersion mrrvs on mrr.ScratchModuleResRefVersionID = mrrvs.ID
and mrrvs.UserName = @a_sUserName
join dbo.udf_GetModuleHierarchy(@a_iModuleID, @a_bUseModuleTree) mt on mrr.ModuleID = mt.ModuleID
where mrr.ResRefID = @a_iResRefID)
RETURN (@iVersionID)
END
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
GRANT EXECUTE ON [dbo].[udf_GetModuleResRefVersionID] TO [bw_db_read]
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS OFF
GO
CREATE FUNCTION [dbo].[udf_GetProcessedIncludes] ()
/*******************************************************************************
// udf_GetProcessedIncludes
//
// Copyright (c) 2008 BioWare Corp.
//
// The source code included in this file is confidential,
// secret, or proprietary information of BioWare Corp. It
// may not be used in whole or in part without express
// written permission from BioWare Corp.
//
////////////////////////////////////////////////////////////////////////////////
// Processes the list of scripting #include references to
// present the full path of all included files from any root.
// NOTE: As per the script compiler, when processing the includes
// of a root file, any include file is only processed once even if
// it is included more than once. For example if script "w" includes
// scripts "x" and "y" and both "x" and "y" include "z", "z" only
// gets included once. Effectively every include file has a built
// in header guard. For those example four files the results would
// show:
// w -> x w includes x
// w -> x -> z w includes z ( through x )
// w -> y w includes y
// x -> z x includes z
// y -> z y includes z
////////////////////////////////////////////////////////////////////////////////
//
// Owned by: Andy W. Desplenter
// Created on: May 18, 2008
//
*******************************************************************************/
RETURNS @Return TABLE
(
[Root] INT,
[RootName] VARCHAR(128),
[RootSize] INT,
[Level] INT,
[Leaf] INT,
[LeafName] VARCHAR(128),
[LeafSize] INT,
[IncludePath] VARCHAR(7750)
)
AS
BEGIN
DECLARE @Level INT
DECLARE @RowCt INT
DECLARE @Includes TABLE
( [Parent] INT, [Child] INT, PRIMARY KEY ( [Parent], [Child] ) )
DECLARE @Names TABLE
( [ResRefID] INT, [ResRefName] VARCHAR(128), [Size] INT, PRIMARY KEY ( [ResRefID] ) )
DECLARE @Results TABLE
( [Root] INT, [Level] INT, [Leaf] INT, [IncludePath] VARCHAR(8000), PRIMARY KEY ( [Root], [Leaf] ) )
-- get ResRefIDs for parent and child of all 'C'urrent include references
INSERT INTO @Includes ( [Parent], [Child] )
SELECT mrrv.[ResRefID], sr.[ReferencedResRefID]
FROM t_Script_Reference sr, t_ModuleResRefVersion mrrv
WHERE mrrv.[ID] = sr.[ModuleResRefVersionID]
AND mrrv.[Status] = 'C'
-- get 'C'urrent Name and resource type for each ResRefID in any include
INSERT INTO @Names ( [ResRefID], [ResRefName], [Size] )
SELECT DISTINCT mrrv.[ResRefID], mrrv.[Name] + '.' + rr.[ResType],
(select sum(sz)
from
( select datalength(a.Text) as sz from t_script a where mrrv.ID = a.ModuleResRefVersionID
UNION select 24+ datalength(mrrv.Name)*3 +sum(datalength(b.Name) + 15 + floor(log10(b.flag+.1)+1)) from t_plotstatus b where mrrv.ID = b.ModuleResRefVersionID
) a
)
FROM t_ModuleResRefVersion mrrv, t_ResRef rr
WHERE mrrv.[Status] = 'C'
AND mrrv.[ResRefID] = rr.[ID]
AND mrrv.[ResRefID] IN ( SELECT [Parent] FROM @Includes UNION SELECT [Child] FROM @Includes )
SET @Level = 0
-- seed first layer, with any resref that is ever a parent
INSERT INTO @Results ( [Root], [Level], [Leaf], [IncludePath] )
SELECT DISTINCT [Parent], @Level, [Parent], [ResRefName]
FROM @Includes I, @Names N
WHERE I.[Parent] = N.[ResRefID]
SET @RowCt = @@ROWCOUNT
-- while there are still rows to add
WHILE @RowCt > 0 -- AND @Level < 3
BEGIN
-- select @Level as LoopNo, @RowCt as RowCt
SET @Level = @Level + 1
-- uses group by because w -> x -> z and w -> y -> z can happen
INSERT INTO @Results ( [Root], [Level], [Leaf], [IncludePath] )
SELECT a, b, c, MIN(d) -- use "first" path to new nested include "w -> x -> z"
FROM (
SELECT DISTINCT R1.[Root] a, @Level b, I.[Child] c, R1.[IncludePath] + ' -> ' + N.[ResRefName] d
FROM @Includes I, @Names N, @Results R1
WHERE R1.[Leaf] = I.[Parent]
AND N.[ResRefID] = I.[Child]
AND R1.[Level] = @Level - 1 -- only add on to previous layer
AND NOT EXISTS -- make sure this included child hasn't already been included in a lower layer
( SELECT 1 FROM @Results R2 WHERE R1.[Root] = R2.[Root] AND I.[Child] = R2.[Leaf] )
) x
GROUP BY a, b, c
SET @RowCt = @@ROWCOUNT
END
INSERT INTO @Return
SELECT [Root], N1.[ResRefName] AS "RootName", N1.[Size] AS "RootSize",
[Level], [Leaf], N2.[ResRefName] AS "LeafName", N2.[Size] AS "LeafSize",
[IncludePath]
FROM @Results, @Names N1, @Names N2
WHERE [Level] > 0
AND N1.[ResRefID] = [Root]
AND N2.[ResRefID] = [Leaf]
ORDER BY [IncludePath]
RETURN
END
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
GRANT SELECT ON [dbo].[udf_GetProcessedIncludes] TO [bw_db_read]
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE FUNCTION [dbo].[udf_GetResourceName] (
@a_iModuleResRefVersionID int)
RETURNS varchar(128) AS
BEGIN
declare @ResType varchar(4)
declare @Name varchar(128)
select @Name = NULL
select @ResType = rr.restype
from t_ResRef rr
join t_ModuleResRefVersion mrrv on rr.id = mrrv.ResRefID
and mrrv.id = @a_iModuleResRefVersionID
if @ResType = 'are'
BEGIN
select @Name = st1.text
from t_area t1
join t_StringText st1 on st1.moduleresrefVersionid = t1.moduleresrefversionid
and st1.stringid = t1.namestringid and st1.stringlanguagevariantid = 1
and st1.ModuleResRefVersionID = @a_iModuleResRefVersionID
GOTO DONE
END
if @ResType = 'utc'
BEGIN
select @Name = st1.text
from t_Creature t1
join t_StringText st1 on st1.moduleresrefVersionid = t1.moduleresrefversionid
and st1.stringid = t1.namestringid and st1.stringlanguagevariantid = 1
and st1.ModuleResRefVersionID = @a_iModuleResRefVersionID
GOTO DONE
END
if @ResType = 'uti'
BEGIN
select @Name = st1.text
from t_Item t1
join t_StringText st1 on st1.moduleresrefVersionid = t1.moduleresrefversionid
and st1.stringid = t1.namestringid and st1.stringlanguagevariantid = 1
and st1.ModuleResRefVersionID = @a_iModuleResRefVersionID
GOTO DONE
END
if @ResType = 'utm'
BEGIN
select @Name = st1.text
from t_Merchant t1
join t_StringText st1 on st1.moduleresrefVersionid = t1.moduleresrefversionid
and st1.stringid = t1.namestringid and st1.stringlanguagevariantid = 1
and st1.ModuleResRefVersionID = @a_iModuleResRefVersionID
GOTO DONE
END
if @ResType = 'utp'
BEGIN
select @Name = st1.text
from t_Placeable t1
join t_StringText st1 on st1.moduleresrefVersionid = t1.moduleresrefversionid
and st1.stringid = t1.namestringid and st1.stringlanguagevariantid = 1
and st1.ModuleResRefVersionID = @a_iModuleResRefVersionID
GOTO DONE
END
DONE:
return (@Name)
END
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
GRANT EXECUTE ON [dbo].[udf_GetResourceName] TO [bw_db_read]
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE FUNCTION [dbo].[udf_GetResourceTag] (
@a_iModuleResRefVersionID int)
RETURNS varchar(32) AS
BEGIN
declare @ResType varchar(4)
declare @Tag varchar(32)
select @Tag = NULL
select @ResType = rr.restype
from t_ResRef rr
join t_ModuleResRefVersion mrrv on rr.id = mrrv.ResRefID
and mrrv.id = @a_iModuleResRefVersionID
if @ResType = 'are'
BEGIN
select @Tag = mrrv.[Name]
from t_ModuleResRefVersion mrrv
where mrrv.ID = @a_iModuleResRefVersionID
GOTO DONE
END
if @ResType = 'utc'
BEGIN
select @Tag = t1.tag
from t_Creature t1
where t1.ModuleResRefVersionID = @a_iModuleResRefVersionID
GOTO DONE
END
if @ResType = 'uti'
BEGIN
select @Tag = t1.tag
from t_Item t1
where t1.ModuleResRefVersionID = @a_iModuleResRefVersionID
GOTO DONE
END
if @ResType = 'utm'
BEGIN
select @Tag = t1.tag
from t_Merchant t1
where t1.ModuleResRefVersionID = @a_iModuleResRefVersionID
GOTO DONE
END
if @ResType = 'utp'
BEGIN
select @Tag = t1.tag
from t_Placeable t1
where t1.ModuleResRefVersionID = @a_iModuleResRefVersionID
GOTO DONE
END
if @ResType = 'stg'
BEGIN
select @Tag = t1.tag
from t_Stage t1
where t1.ModuleResRefVersionID = @a_iModuleResRefVersionID
GOTO DONE
END
if @ResType = 'utt'
BEGIN
select @Tag = t1.tag
from t_Trigger t1
where t1.ModuleResRefVersionID = @a_iModuleResRefVersionID
GOTO DONE
END
DONE:
return (@Tag)
END
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
GRANT EXECUTE ON [dbo].[udf_GetResourceTag] TO [bw_db_read]
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS OFF
GO
------------------------------------------------------------------------
-- FUNCTION: udf_GetStringIDsWithVOHardTiming
------------------------------------------------------------------------
-- Created By: Chris Christou
-- Created On: August 24, 2009
--
-- Description:
-- Returns a list of StringIDs that have hard-timing
-- restrictions on them.
-- Applies to VO Recordings, and foreign translations.
--
-- Parameters:
-- (none)
--
-- Returns:
-- set of StringIDs
------------------------------------------------------------------------
CREATE FUNCTION [dbo].[udf_GetStringIDsWithVOHardTiming] ()
RETURNS @RESULT_SET TABLE
(
[StringID] int
)
AS
BEGIN
-- Create a temp location to gather data.
-- We do this because some times the same StringID will
-- be inserted more than once.
DECLARE @tblStringID TABLE
(
[StringID] int NOT NULL
)
-- Take the Conversation Line Strings that are flagged
-- to use the Animation Duration.
INSERT @tblStringID ([StringID])
SELECT cl.[TextStringID]
FROM t_ModuleResRefVersion mrv
JOIN t_ConversationLine cl WITH ( NOLOCK )
ON mrv.[ID] = cl.[ModuleResRefVersionID]
AND mrv.[Status] = 'C'
AND cl.[UseAnimationDuration] = 1
-- Take all Conversation Lines on conversations flagged with VOHardTimeRestriction
INSERT @tblStringID ([StringID])
SELECT cl.[TextStringID]
FROM t_ModuleResRefVersion mrv
JOIN t_Conversation c WITH ( NOLOCK )
ON mrv.[ID] = c.[ModuleResRefVersionID]
AND mrv.[Status] = 'C'
AND c.[VOHardTimeRestriction] = 1
JOIN t_ConversationLine cl WITH ( NOLOCK )
ON mrv.[ID] = cl.[ModuleResRefVersionID]
-- Take all Cutscene Referenced Strings for Cutscenes
-- marked to NOT Play until VO Completes.
INSERT @tblStringID ([StringID])
SELECT ca.int1
FROM t_ModuleResRefVersion mrv
JOIN t_Cutscene c WITH ( NOLOCK )
ON mrv.[ID] = c.[ModuleResRefVersionID]
AND mrv.[Status] = 'C'
AND c.[PlayUntilVOCompletes] = 0
JOIN t_CutsceneAction ca WITH ( NOLOCK )
ON ca.[ModuleResRefVersionID] = mrv.[ID]
AND ca.[Type] = 3
AND ca.[int1] != -1
-- Take all Cutscenes that reference more than one String.
-- Include all strings in these particular cutscenes.
DECLARE @tblCutsceneReferenceCount TABLE
(
[ModuleID] int,
[ResRefID] int,
[RefCount] int
)
INSERT @tblCutsceneReferenceCount
SELECT
mrv.ModuleID,
mrv.ResRefID,
count(*)
FROM dbo.t_CutsceneAction ca WITH ( NOLOCK )
JOIN dbo.t_ModuleResRefVersion mrv
ON ca.ModuleResRefVersionID = mrv.ID
AND mrv.Status = 'C'
AND ca.Type = 3
AND ca.int1 != -1
GROUP BY mrv.ModuleID, mrv.ResRefID
HAVING COUNT(*) > 1
INSERT @tblStringID ([StringID])
SELECT ca.int1
FROM dbo.t_CutsceneAction ca WITH ( NOLOCK )
JOIN dbo.t_ModuleResRefVersion mrv
ON ca.ModuleResRefVersionID = mrv.ID
AND mrv.Status = 'C'
JOIN @tblCutsceneReferenceCount crc
ON mrv.ModuleID = crc.ModuleID
AND mrv.ResRefID = crc.ResRefID
AND ca.Type = 3
AND ca.int1 != -1
-- Take the distinct list of StringIDs, and place it in the return table
INSERT @RESULT_SET ( [StringID] )
SELECT DISTINCT [StringID]
FROM @tblStringID
-- Done
RETURN
END
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
GRANT SELECT ON [dbo].[udf_GetStringIDsWithVOHardTiming] TO [bw_db_read]
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS OFF
GO
------------------------------------------------------------------------
-- FUNCTION: udf_GetVOScriptConversationLineCounts
------------------------------------------------------------------------
-- Created By: Chris Christou
-- Created On: September 02, 2009
--
-- Description:
-- Used by the VO Script Generator to show the absolute
-- NPC and PC line counts of conversations used by VO Scripts.
--
-- Blank lines are excluded.
--
-- Parameters:
-- < none >
--
-- Returns Table:
-- Conversation ModuleID/ResRefID
-- IsPC - true: Line count is for PC Lines, false: Line count is for NPC Lines
-- LineCount - See IsPC
------------------------------------------------------------------------
CREATE FUNCTION [dbo].[udf_GetVOScriptConversationLineCounts]
(
)
RETURNS @RESULT_SET TABLE
(
[ModuleID] int,
[ResRefID] int,
[IsPC] bit,
[LineCount] int
)
AS
BEGIN
INSERT @RESULT_SET
SELECT
mrv.[ModuleID],
mrv.[ResRefID],
cl.[IsPC],
COUNT(*) as [LineCount]
FROM t_ConversationLine cl WITH ( NOLOCK )
JOIN t_ModuleResRefVersion mrv
ON cl.[ModuleResRefVersionID] = mrv.[ID]
AND mrv.[Status] = 'C'
JOIN
( -- Filter the resources down to those known to be used by VO Scripts
select DISTINCT ResourceModuleID, ResourceResRefID
from t_VOScript
WHERE [IsActive] = 1
) x
on mrv.ModuleID = x.ResourceModuleID
and mrv.ResRefID = x.ResourceResRefID
JOIN t_StringText st WITH ( NOLOCK )
ON cl.[TextStringID] = st.[StringID]
AND mrv.[ID] = st.[ModuleResRefVersionID]
AND st.[WordCount] > 0
GROUP BY
mrv.[ModuleID],
mrv.[ResRefID],
cl.[IsPC]
RETURN
END
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
GRANT SELECT ON [dbo].[udf_GetVOScriptConversationLineCounts] TO [bw_db_read]
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS OFF
GO
CREATE FUNCTION [dbo].[udf_ParseIncludesFromScript]
(@ScriptMRRV INT)
RETURNS @Results TABLE
(
ResName VARCHAR(128),
ResType VARCHAR(4),
ResRefID INT
)
AS
BEGIN
-- Script overview:
-- This detects #includes after the current position. It scans from
-- current position upto the #include to make sure it's not in a
-- comment, and bails if there are no #includes after current position.
DECLARE @Testing BIT -- flag used to avoid excessive nesting of ifs
DECLARE @MaxLength INT -- Length of the script string
DECLARE @CurLocation INT -- index into the script during parsing
DECLARE @IncludeStart INT -- location of nearest include found after current location
DECLARE @InlineStart INT -- location of nearest inline comment found after current location
DECLARE @BlockStart INT -- location of nearest block comment found after current location
DECLARE @NameStart INT -- location of start of the quote delimited file name for the #include
DECLARE @NameEnd INT -- location of end of the quote delimited file name for the #include
DECLARE @ResName VARCHAR(128) -- Resource Name extracted from #include
DECLARE @ResType VARCHAR(4) -- Resource type of the #include'ed resource
DECLARE @ResRefID INT -- ResRef ID of the #include'ed resource
DECLARE @CurResType VARCHAR(4) -- Resource type of the passed script to be parsed
DECLARE @CurModuleID INT -- Module ID of the passed script to be parsed
DECLARE @Cache TABLE -- Table variable to hold the text value of the script in memory
(
[Script] TEXT
)
-- Cache values from the passed script
INSERT INTO @Cache
SELECT [Text]
FROM t_Script s
WHERE s.[ModuleResRefVersionID] = @ScriptMRRV
SELECT @CurResType = [ResType],
@CurModuleID = [ModuleID]
FROM t_Script s
JOIN t_ModuleResRefVersion m ON m.[ID] = s.[ModuleResRefVersionID]
JOIN t_ResRef r ON r.[ID] = m.[ResRefID]
WHERE s.[ModuleResRefVersionID] = @ScriptMRRV
-- seed the loop
SET @CurLocation = 1
SELECT @MaxLength = DATALENGTH( [Script] ),
@IncludeStart = CHARINDEX('#include', [Script], @CurLocation),
@InlineStart = CHARINDEX('//', [Script], @CurLocation),
@BlockStart = CHARINDEX('/*', [Script], @CurLocation)
FROM @Cache
-- while there's still includes left to process or code we haven't looked at
WHILE @CurLocation < @MaxLength AND @IncludeStart > 0
BEGIN
SET @Testing = 1
SET @ResName = NULL
SET @ResRefID = NULL
SET @ResType = @CurResType -- default to same type as passed script
-- if there's a comment block before the #include skip past it
IF @BlockStart >0 AND @BlockStart < @IncludeStart
BEGIN
-- look for first comment block end after the block start
SELECT @CurLocation = CHARINDEX('*/', [Script], @BlockStart+2 )
FROM @Cache
-- if non found then skip to end of text
IF @CurLocation = 0
BEGIN
SET @CurLocation = @MaxLength
END
-- skip rest of checks
SET @Testing = 0
END
-- if there's an inline comment before the #include skip past it
IF @Testing = 1 AND @InlineStart > 0 AND @InlineStart < @IncludeStart
BEGIN
-- look for first end of line after the inline comment
SELECT @CurLocation = CHARINDEX(CHAR(10), [Script], @InlineStart+2 )
FROM @Cache
-- if non found then skip to end of text
IF @CurLocation = 0
BEGIN
SET @CurLocation = @MaxLength
END
-- skip rest of checks
SET @Testing = 0
END
-- if there were no comments to skip try to extract an included resource name
IF @Testing = 1
BEGIN
SET @CurLocation = @IncludeStart + 8
SELECT @NameStart = CHARINDEX( '"', [Script], @CurLocation)
FROM @Cache
IF @NameStart > 0
BEGIN
SELECT @NameEnd = CHARINDEX( '"', [Script], @NameStart+1)
FROM @Cache
IF @NameEnd > @NameStart
BEGIN
SELECT @ResName = SUBSTRING( [Script], @NameStart+1, @NameEnd-@NameStart-1)
FROM @Cache
SET @CurLocation = @NameEnd + 1
IF LOWER(SUBSTRING(@ResName,1,4)) = 'plt_'
BEGIN
SET @ResName = SUBSTRING(@ResName,5,8000)
SET @ResType = 'plo'
END
END
END
END
IF @ResName IS NOT NULL
BEGIN
-- Get the ResRefID
SELECT DISTINCT @ResRefID = r.[ID]
FROM v_ModuleTree mt
JOIN t_ModuleResRef mrr
ON mrr.[ModuleID] = mt.[AssociatedModuleID]
JOIN t_ResRef r
ON r.[ID] = mrr.[ResRefID]
AND r.[ResType] = @ResType
JOIN t_ModuleResRefVersion mrrv
ON mrrv.[ModuleID] = mrr.[ModuleID]
AND mrrv.[ResRefID] = mrr.[ResRefID]
AND mrrv.[Name] = @ResName
AND mrrv.[Status] IN ('C', 'S')
WHERE mt.[ModuleID] = @CurModuleID
-- Add to Results
INSERT INTO @Results ( ResName, ResType, ResRefID )
VALUES ( @ResName, @ResType, @ResRefID)
END
-- reseed start locations before looping
SELECT @IncludeStart = CHARINDEX('#include', [Script], @CurLocation),
@InlineStart = CHARINDEX('//', [Script], @CurLocation),
@BlockStart = CHARINDEX('/*', [Script], @CurLocation)
FROM @Cache
END -- end of 'while still work to do' loop
RETURN
END
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
GRANT SELECT ON [dbo].[udf_ParseIncludesFromScript] TO [bw_db_write]
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS OFF
GO
------------------------------------------------------------------------
-- FUNCTION: udf_StringsRequiringTranslation
------------------------------------------------------------------------
-- Owned By: Chris Christou
-- Created On: November 23, 2006
-- Description:
-- Params: NONE
-- Returns: Table that is similar to v_StringsRequiringTranslation
------------------------------------------------------------------------
CREATE FUNCTION [dbo].[udf_StringsRequiringTranslation] ( )
RETURNS @ReturnTable TABLE
(
StringID int NOT NULL,
ModuleResRefVersionID int NOT NULL,
IsMajorChange int NOT NULL,
IsNew int NOT NULL
)
AS
BEGIN
-- updating major changes
INSERT INTO @ReturnTable
SELECT t.[StringID], t.[ModuleResRefVersionID], 1 as [IsMajorChange], 0 as [IsNew]
FROM t_StringText t
JOIN t_ModuleResRefVersion mrv
ON t.[ModuleResRefVersionID] = mrv.[ID]
JOIN t_StringExportHistory seh
ON t.[StringID] = seh.[StringID]
AND seh.[Status] = 'A'
WHERE mrv.[Status] = 'C' -- Ensures that we only care about current version strings
AND t.[LastMajorUpdateOn] > seh.[CompareDate] -- strings updated since last export are included
-- updating minor changes
INSERT INTO @ReturnTable
SELECT t.[StringID], t.[ModuleResRefVersionID], 0 as [IsMajorChange], 0 as [IsNew]
FROM t_StringText t
JOIN t_ModuleResRefVersion mrv
ON t.[ModuleResRefVersionID] = mrv.[ID]
JOIN t_StringExportHistory seh
ON t.[StringID] = seh.[StringID]
AND seh.[Status] = 'A'
WHERE mrv.[Status] = 'C' -- Ensures that we only care about current version strings
AND t.[LastMinorUpdateOn] > seh.[CompareDate] -- strings updated since last export are included
AND t.[StringID] NOT IN
(
SELECT [StringID]
FROM @ReturnTable
)
-- never translated strings
INSERT INTO @ReturnTable
SELECT t.[StringID], t.[ModuleResRefVersionID], 1 as [IsMajorChange], 1 as [IsNew]
FROM t_StringText t
JOIN t_ModuleResRefVersion mrv
ON t.[ModuleResRefVersionID] = mrv.[ID]
WHERE mrv.[Status] = 'C' -- Ensures that we only care about current version strings
AND t.[StringID] NOT IN
(
SELECT [StringID]
FROM t_StringExportHistory
WHERE [Status] = 'A'
)
RETURN
END
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
CREATE TABLE [dbo].[t_CharacterDelta] (
[ID] [int] IDENTITY (1, 1) NOT FOR REPLICATION NOT NULL ,
[Comment] [ntext] COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[CreatedOn] [datetime] NOT NULL ,
[CreatedBy] [varchar] (64) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
CREATE TABLE [dbo].[t_GlobalParameters] (
[Name] [varchar] (128) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[Value] [varchar] (128) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[t_JobProcessInformation] (
[Name] [varchar] (120) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[Value] [varchar] (120) COLLATE SQL_Latin1_General_CP1_CI_AS NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[t_KeyGenStringID] (
[LastUsedID] [int] NOT NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[t_ModuleType] (
[ID] [int] IDENTITY (1, 1) NOT FOR REPLICATION NOT NULL ,
[Name] [varchar] (64) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[Directory] [varchar] (64) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[CreatedOn] [datetime] NOT NULL ,
[CreatedBy] [varchar] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[LastModifiedOn] [datetime] NOT NULL ,
[LastModifiedBy] [varchar] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[t_ResourceTables] (
[ID] [int] IDENTITY (1, 1) NOT FOR REPLICATION NOT NULL ,
[Name] [varchar] (128) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[CreatedOn] [datetime] NOT NULL ,
[CreatedBy] [varchar] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[LastModifiedOn] [datetime] NOT NULL ,
[LastModifiedBy] [varchar] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[t_StringExportLabel] (
[ID] [int] IDENTITY (1, 1) NOT FOR REPLICATION NOT NULL ,
[Name] [varchar] (255) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[Comment] [ntext] COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[Status] [char] (1) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[ExportContent] [int] NOT NULL ,
[CreatedOn] [datetime] NOT NULL ,
[CreatedBy] [varchar] (64) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[LastModifiedOn] [datetime] NOT NULL ,
[LastModifiedBy] [varchar] (64) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
CREATE TABLE [dbo].[t_StringImportSession] (
[ID] [int] IDENTITY (1, 1) NOT FOR REPLICATION NOT NULL ,
[ImportedOn] [datetime] NOT NULL ,
[ImportedBy] [varchar] (64) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[Status] [varchar] (3) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[Comment] [text] COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
CREATE TABLE [dbo].[t_StringTable] (
[ID] [int] IDENTITY (1, 1) NOT FOR REPLICATION NOT NULL ,
[Name] [varchar] (64) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[CreatedOn] [datetime] NOT NULL ,
[CreatedBy] [varchar] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[LastModifiedOn] [datetime] NOT NULL ,
[LastModifiedBy] [varchar] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[t_StringType] (
[ID] [int] IDENTITY (1, 1) NOT FOR REPLICATION NOT NULL ,
[Name] [varchar] (128) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[Description] [text] COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[IncludeFile] [varchar] (128) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[CreatedOn] [datetime] NOT NULL ,
[CreatedBy] [varchar] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[LastModifiedOn] [datetime] NOT NULL ,
[LastModifiedBy] [varchar] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[Exported] [bit] NOT NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
CREATE TABLE [dbo].[t_StringVariant] (
[ID] [int] IDENTITY (1, 1) NOT FOR REPLICATION NOT NULL ,
[Name] [varchar] (128) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[Description] [text] COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[CreatedOn] [datetime] NOT NULL ,
[CreatedBy] [varchar] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[LastModifiedOn] [datetime] NOT NULL ,
[LastModifiedBy] [varchar] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
CREATE TABLE [dbo].[t_VOScriptInstanceManagement] (
[ID] [int] IDENTITY (1, 1) NOT FOR REPLICATION NOT NULL ,
[VOScriptInstanceID] [int] NOT NULL ,
[Active] [char] (1) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[Actor] [ntext] COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[Studio] [ntext] COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[RequiresProcessing] [bit] NOT NULL ,
[SentOn] [datetime] NULL ,
[ReceivedOn] [datetime] NULL ,
[ReceivedAllVOFiles] [bit] NOT NULL ,
[Notes] [ntext] COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[CreatedOn] [datetime] NOT NULL ,
[CreatedBy] [varchar] (64) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
CREATE TABLE [dbo].[t_VOScriptLineCharacterInternal] (
[SPID] [int] NOT NULL ,
[ResourceModuleID] [int] NOT NULL ,
[ResourceResRefID] [int] NOT NULL ,
[ResourceModuleResRefVersionID] [int] NOT NULL ,
[StringID] [int] NOT NULL ,
[CharacterModuleID] [int] NULL ,
[CharacterResRefID] [int] NULL ,
[ID] [int] IDENTITY (1, 1) NOT NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[t_VOSessionInstance] (
[ID] [int] IDENTITY (1, 1) NOT FOR REPLICATION NOT NULL ,
[Unused] [bit] NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[t_ResourceDefinition] (
[ResType] [varchar] (4) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[BaseResourceTableID] [int] NOT NULL ,
[CreatedOn] [datetime] NOT NULL ,
[CreatedBy] [varchar] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[LastModifiedOn] [datetime] NOT NULL ,
[LastModifiedBy] [varchar] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[t_ResourceTableRelationship] (
[ParentResourceTableID] [int] NOT NULL ,
[ChildResourceTableID] [int] NOT NULL ,
[FullPath] [varchar] (100) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[Level] [int] NOT NULL ,
[CreatedOn] [datetime] NOT NULL ,
[CreatedBy] [varchar] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[LastModifiedOn] [datetime] NOT NULL ,
[LastModifiedBy] [varchar] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[t_String] (
[StringTableID] [int] NOT NULL ,
[CreatedOn] [datetime] NOT NULL ,
[CreatedBy] [varchar] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[LastModifiedOn] [datetime] NOT NULL ,
[LastModifiedBy] [varchar] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[TEMPID] [int] NULL ,
[ID] [int] NOT NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[t_StringExportHistory] (
[ID] [int] IDENTITY (1, 1) NOT FOR REPLICATION NOT NULL ,
[StringExportLabelID] [int] NOT NULL ,
[StringID] [int] NOT NULL ,
[ModuleResRefVersionID] [int] NOT NULL ,
[Status] [char] (1) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[CompareDate] [datetime] NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[t_StringExportLabelResourceStats] (
[StringExportLabelID] [int] NOT NULL ,
[ModuleResRefVersionID] [int] NOT NULL ,
[NewLines] [int] NOT NULL ,
[NewWords] [int] NOT NULL ,
[UpdatedLines] [int] NOT NULL ,
[UpdatedWords] [int] NOT NULL ,
[TotalLines] [int] NOT NULL ,
[TotalWords] [int] NOT NULL ,
[NewNonBlankLines] [int] NOT NULL ,
[UpdatedNonBlankLines] [int] NOT NULL ,
[TotalNonBlankLines] [int] NOT NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[t_StringExportLabelStringTypeStats] (
[StringExportLabelID] [int] NOT NULL ,
[StringTypeID] [int] NOT NULL ,
[NewLines] [int] NOT NULL ,
[NewWords] [int] NOT NULL ,
[UpdatedLines] [int] NOT NULL ,
[UpdatedWords] [int] NOT NULL ,
[TotalLines] [int] NOT NULL ,
[TotalWords] [int] NOT NULL ,
[NewNonBlankLines] [int] NOT NULL ,
[UpdatedNonBlankLines] [int] NOT NULL ,
[TotalNonBlankLines] [int] NOT NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[t_ResRef] (
[ID] [int] IDENTITY (1, 1) NOT FOR REPLICATION NOT NULL ,
[ResType] [varchar] (4) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[t_StringExportHistoryAdjustmentLog] (
[ID] [int] IDENTITY (1, 1) NOT FOR REPLICATION NOT NULL ,
[StringExportHistoryID] [int] NOT NULL ,
[Action] [char] (1) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[OldCompareDate] [datetime] NOT NULL ,
[NewCompareDate] [datetime] NOT NULL ,
[Comment] [ntext] COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[CreatedOn] [datetime] NOT NULL ,
[CreatedBy] [varchar] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
CREATE TABLE [dbo].[t_Module] (
[ID] [int] IDENTITY (1, 1) NOT FOR REPLICATION NOT NULL ,
[Name] [varchar] (64) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[StringTableID] [int] NULL ,
[IsCore] [bit] NOT NULL ,
[Directory] [varchar] (64) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[StartTag] [varchar] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[StartAreaResRefID] [int] NULL ,
[CreatedOn] [datetime] NOT NULL ,
[CreatedBy] [varchar] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[LastModifiedOn] [datetime] NOT NULL ,
[LastModifiedBy] [varchar] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[ScriptResRefID] [int] NULL ,
[Variable2da] [varchar] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[IncludeInResBuild] [bit] NOT NULL ,
[ClientScriptResRefID] [int] NULL ,
[Type] [int] NOT NULL ,
[DisplayNameStringID] [int] NULL ,
[DescriptionStringID] [int] NULL ,
[ExtendedModuleID] [int] NULL ,
[UID] [varchar] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[Priority] [int] NULL ,
[IconImage] [varchar] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[RatingStringID] [int] NULL ,
[RatingDescriptionStringID] [int] NULL ,
[URLStringID] [int] NULL ,
[ReleaseDate] [datetime] NULL ,
[Version] [varchar] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[GameVersion] [varchar] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[PublisherStringID] [int] NULL ,
[ProductID] [int] NULL ,
[Price] [int] NULL ,
[Presentation] [int] NULL ,
[ContentModuleID] [int] NULL ,
[RequiresLocalization] [bit] NOT NULL ,
[RequiresVO] [bit] NOT NULL ,
[StringIDBegin] [int] NOT NULL ,
[StringIDEnd] [int] NOT NULL ,
[StringIDLastUsed] [int] NOT NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[t_StringSound] (
[ID] [int] IDENTITY (1, 1) NOT FOR REPLICATION NOT NULL ,
[StringID] [int] NOT NULL ,
[SoundResRefID] [int] NOT NULL ,
[CreatedOn] [datetime] NOT NULL ,
[CreatedBy] [varchar] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[LastModifiedOn] [datetime] NOT NULL ,
[LastModifiedBy] [varchar] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[t_ModuleAssociation] (
[ParentModuleID] [int] NOT NULL ,
[ChildModuleID] [int] NOT NULL ,
[FullPath] [varchar] (100) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[Level] [int] NOT NULL ,
[CreatedOn] [datetime] NOT NULL ,
[CreatedBy] [varchar] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[LastModifiedOn] [datetime] NOT NULL ,
[LastModifiedBy] [varchar] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[t_ModuleVariable] (
[ModuleID] [int] NOT NULL ,
[Name] [varchar] (64) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[Type] [int] NOT NULL ,
[Data] [varchar] (128) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[t_Area] (
[ModuleResRefVersionID] [int] NOT NULL ,
[NameStringID] [int] NULL ,
[ScriptResRefID] [int] NULL ,
[Comments] [text] COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[NoTeleport] [bit] NOT NULL ,
[NonHostile] [bit] NOT NULL ,
[AreaMap] [varchar] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[AreaMapWidth] [int] NOT NULL ,
[AreaMapHeight] [int] NOT NULL ,
[AreaLayout] [varchar] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[NoPartyInPocket] [bit] NOT NULL ,
[Variable2da] [varchar] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[AreaListResRefID] [int] NULL ,
[AreaMapNorth] [int] NOT NULL ,
[ReverbPreset] [varchar] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[MusicPreset] [varchar] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
CREATE TABLE [dbo].[t_Conversation] (
[ModuleResRefVersionID] [int] NOT NULL ,
[EndConversationScriptResRefID] [int] NULL ,
[Comment] [text] COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[EndConversationPlotResRefID] [int] NULL ,
[EndConversationPlotFlag] [int] NOT NULL ,
[EndConversationParameter] [int] NOT NULL ,
[EndConversationParameterText] [varchar] (64) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[EndConversationResult] [bit] NOT NULL ,
[DefaultNPCSpeaker] [varchar] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[StageResRefID] [int] NULL ,
[DefaultNPCListener] [varchar] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[DefaultPCListener] [varchar] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[PreviewAreaResRefID] [int] NULL ,
[PreviewStageUseFirstMatch] [bit] NOT NULL ,
[PreviewStagePositionX] [real] NOT NULL ,
[PreviewStagePositionY] [real] NOT NULL ,
[PreviewStagePositionZ] [real] NOT NULL ,
[PreviewStageOrientationX] [real] NOT NULL ,
[PreviewStageOrientationY] [real] NOT NULL ,
[PreviewStageOrientationZ] [real] NOT NULL ,
[StageTag] [varchar] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[AllCameraLocked] [bit] NOT NULL ,
[AllGesturesLocked] [bit] NOT NULL ,
[AllPosesLocked] [bit] NOT NULL ,
[AllRoboBradLocked] [bit] NOT NULL ,
[StageAtCurrentLocation] [bit] NOT NULL ,
[AmbientSoundSetType] [bit] NOT NULL ,
[OwnerIsHenchman] [bit] NOT NULL ,
[VOHardTimeRestriction] [bit] NOT NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
CREATE TABLE [dbo].[t_ConversationLine] (
[ModuleResRefVersionID] [int] NOT NULL ,
[Index] [int] NOT NULL ,
[IsPC] [bit] NOT NULL ,
[TextStringID] [int] NOT NULL ,
[LanguageID] [int] NOT NULL ,
[ConditionScriptResRefID] [int] NULL ,
[ConditionParameter] [int] NOT NULL ,
[ConditionParameterText] [varchar] (64) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[ActionScriptResRefID] [int] NULL ,
[ActionParameter] [int] NOT NULL ,
[ActionParameterText] [varchar] (64) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[Icon] [int] NOT NULL ,
[Comment] [text] COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[VoiceOverTag] [varchar] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[VoiceOverComment] [text] COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[ActionPlotResRefID] [int] NULL ,
[ActionPlotFlag] [int] NOT NULL ,
[ActionResult] [bit] NOT NULL ,
[ConditionPlotResRefID] [int] NULL ,
[ConditionPlotFlag] [int] NOT NULL ,
[ConditionResult] [bit] NOT NULL ,
[ListenerCharacterID] [int] NULL ,
[SpeakerCharacterID] [int] NULL ,
[EditorComment] [text] COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[Speaker] [varchar] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[Listener] [varchar] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[Visibility] [int] NOT NULL ,
[Ambient] [bit] NOT NULL ,
[StageResRefID] [int] NULL ,
[CameraTag] [varchar] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[CustomCutsceneResRefID] [int] NULL ,
[SpeakerAnimation] [varchar] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[CameraFunctionalShotResRefID] [int] NULL ,
[Emotion] [int] NOT NULL ,
[RoboBradSeed] [int] NOT NULL ,
[RoboBradSeedOverride] [bit] NOT NULL ,
[RoboBradLocked] [bit] NOT NULL ,
[PreviewAreaResRefID] [int] NULL ,
[PreviewStageUseFirstMatch] [bit] NOT NULL ,
[PreviewStagePositionX] [real] NOT NULL ,
[PreviewStagePositionY] [real] NOT NULL ,
[PreviewStagePositionZ] [real] NOT NULL ,
[PreviewStageOrientationX] [real] NOT NULL ,
[PreviewStageOrientationY] [real] NOT NULL ,
[PreviewStageOrientationZ] [real] NOT NULL ,
[Skip] [bit] NOT NULL ,
[FastPath] [int] NOT NULL ,
[StageTag] [varchar] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[AnimationsLocked] [bit] NOT NULL ,
[PlaySoundEvents] [bit] NOT NULL ,
[CameraLocked] [bit] NOT NULL ,
[SecondaryCameraTag] [varchar] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[SecondaryCameraDelay] [real] NOT NULL ,
[UseAnimationDuration] [tinyint] NOT NULL ,
[NoVOInGame] [tinyint] NOT NULL ,
[RevertAnimation] [bit] NOT NULL ,
[Narration] [bit] NOT NULL ,
[SlideShowTexture] [varchar] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[StageAtCurrentLocation] [bit] NOT NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
CREATE TABLE [dbo].[t_Creature] (
[ModuleResRefVersionID] [int] NOT NULL ,
[NameStringID] [int] NULL ,
[Tag] [varchar] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[Race] [int] NOT NULL ,
[Appearance] [int] NOT NULL ,
[Gender] [int] NOT NULL ,
[Group] [int] NOT NULL ,
[Selectable] [bit] NOT NULL ,
[Head] [int] NOT NULL ,
[Class] [int] NOT NULL ,
[Package] [int] NOT NULL ,
[ConversationResRefID] [int] NULL ,
[ScriptResRefID] [int] NULL ,
[Comments] [text] COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[Immortal] [bit] NOT NULL ,
[Plot] [bit] NOT NULL ,
[PerceptionRange] [int] NOT NULL ,
[Gold] [int] NOT NULL ,
[Autobalance] [int] NOT NULL ,
[CharacterResRefID] [int] NULL ,
[Hair] [int] NOT NULL ,
[Eyes] [int] NOT NULL ,
[Variable2da] [varchar] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[Beard] [int] NOT NULL ,
[SkinTint] [int] NOT NULL ,
[Tattoo] [int] NOT NULL ,
[EyeTint] [int] NOT NULL ,
[HairTint] [int] NOT NULL ,
[HeadMorph] [varchar] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[Combatant] [int] NOT NULL ,
[GUIBar] [int] NOT NULL ,
[BodyTintMask] [int] NOT NULL ,
[TattooTint] [int] NOT NULL ,
[NoPermanentDeath] [bit] NOT NULL ,
[BodyTint] [int] NOT NULL ,
[Team] [int] NOT NULL ,
[PlotGiver] [bit] NOT NULL ,
[TreasureCategory] [int] NOT NULL ,
[PackageType] [int] NOT NULL ,
[PackageAI] [int] NOT NULL ,
[MinLevel] [int] NOT NULL ,
[MaxLevel] [int] NOT NULL ,
[ArtFidelity] [int] NOT NULL ,
[DescriptionStringID] [int] NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
CREATE TABLE [dbo].[t_Cutscene] (
[ModuleResRefVersionID] [int] NOT NULL ,
[RunTime] [int] NOT NULL ,
[EndScriptResRefID] [int] NULL ,
[StageResRefID] [int] NULL ,
[PrimaryActor] [int] NOT NULL ,
[AreaResRefID] [int] NULL ,
[Animatic] [varchar] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[BeforeKeyBasedTracks] [bit] NOT NULL ,
[ShowDynamics] [bit] NOT NULL ,
[PlaySoundEvents] [bit] NOT NULL ,
[UseMasterForLOD] [bit] NOT NULL ,
[AreaPosOffsetX] [real] NOT NULL ,
[AreaPosOffsetY] [real] NOT NULL ,
[AreaPosOffsetZ] [real] NOT NULL ,
[AreaOriOffsetX] [real] NOT NULL ,
[AreaOriOffsetY] [real] NOT NULL ,
[AreaOriOffsetZ] [real] NOT NULL ,
[EnableLevelFBEs] [bit] NOT NULL ,
[FPS] [int] NOT NULL ,
[BeforeFixingGADOffsetBaking] [bit] NOT NULL ,
[PlayUntilVOCompletes] [bit] NOT NULL ,
[AreaRequired] [bit] NOT NULL ,
[ShadowRadius] [real] NOT NULL ,
[LightOcclusion] [bit] NOT NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[t_CutsceneAction] (
[ModuleResRefVersionID] [int] NOT NULL ,
[CutsceneObjectInstanceID] [int] NOT NULL ,
[CutsceneTrackInstanceID] [int] NOT NULL ,
[InstanceID] [int] NOT NULL ,
[StartTime] [int] NOT NULL ,
[EndTime] [int] NOT NULL ,
[Type] [int] NOT NULL ,
[int1] [int] NOT NULL ,
[int2] [int] NOT NULL ,
[byte1] [tinyint] NOT NULL ,
[real1] [real] NOT NULL ,
[real2] [real] NOT NULL ,
[real3] [real] NOT NULL ,
[real4] [real] NOT NULL ,
[real5] [real] NOT NULL ,
[real6] [real] NOT NULL ,
[bit1] [bit] NOT NULL ,
[bit2] [bit] NOT NULL ,
[varchar1] [varchar] (255) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[varchar2] [varchar] (255) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[StringID1] [int] NULL ,
[VectorData] [image] NULL ,
[int3] [int] NOT NULL ,
[int4] [int] NOT NULL ,
[int5] [int] NOT NULL ,
[LoopingEndTime] [int] NOT NULL ,
[varchar3] [varchar] (255) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[ResRefID1] [int] NULL ,
[bit3] [bit] NOT NULL ,
[GroupID] [int] NOT NULL ,
[Infinite] [bit] NOT NULL ,
[bit4] [bit] NOT NULL ,
[bit5] [bit] NOT NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
CREATE TABLE [dbo].[t_CutsceneObject] (
[ModuleResRefVersionID] [int] NOT NULL ,
[InstanceID] [int] NOT NULL ,
[ResRefID] [int] NULL ,
[Model] [varchar] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[WalkmeshInitial] [bit] NOT NULL ,
[GlobalActor] [bit] NOT NULL ,
[PositionX] [real] NOT NULL ,
[PositionY] [real] NOT NULL ,
[PositionZ] [real] NOT NULL ,
[OrientationX] [real] NOT NULL ,
[OrientationY] [real] NOT NULL ,
[OrientationZ] [real] NOT NULL ,
[ActorID] [int] NOT NULL ,
[Type] [int] NOT NULL ,
[Name] [varchar] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[real1] [real] NOT NULL ,
[real2] [real] NOT NULL ,
[real3] [real] NOT NULL ,
[real4] [real] NOT NULL ,
[int1] [int] NOT NULL ,
[int2] [int] NOT NULL ,
[AttachedToActorID] [int] NOT NULL ,
[real5] [real] NOT NULL ,
[UsePose] [bit] NOT NULL ,
[Pose] [int] NOT NULL ,
[PoseSpeed] [real] NOT NULL ,
[OriginX] [real] NOT NULL ,
[OriginY] [real] NOT NULL ,
[OriginZ] [real] NOT NULL ,
[OriginYaw] [real] NOT NULL ,
[OriginPitch] [real] NOT NULL ,
[OriginRoll] [real] NOT NULL ,
[MappingTag] [varchar] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[TransitionDelay] [real] NOT NULL ,
[PreviousPose] [int] NOT NULL ,
[MappingRequired] [bit] NOT NULL ,
[ExportResRef] [bit] NOT NULL ,
[TargetActorID] [int] NOT NULL ,
[LOD] [int] NOT NULL ,
[ModelScale] [real] NOT NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[t_CutsceneTrack] (
[ModuleResRefVersionID] [int] NOT NULL ,
[CutsceneObjectInstanceID] [int] NOT NULL ,
[InstanceID] [int] NOT NULL ,
[Name] [varchar] (255) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[Type] [int] NOT NULL ,
[VectorData] [image] NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
CREATE TABLE [dbo].[t_Item] (
[ModuleResRefVersionID] [int] NOT NULL ,
[NameStringID] [int] NULL ,
[DescriptionStringID] [int] NULL ,
[ScriptResRefID] [int] NULL ,
[BaseItemType] [int] NOT NULL ,
[Appearance] [int] NOT NULL ,
[MaterialType] [int] NOT NULL ,
[Tag] [varchar] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[Plot] [bit] NOT NULL ,
[CostOverride] [int] NULL ,
[Comments] [text] COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[Ability] [int] NULL ,
[Variable2da] [varchar] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[Heraldry] [int] NOT NULL ,
[TintOverride] [int] NOT NULL ,
[Damaged] [bit] NOT NULL ,
[Icon] [varchar] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[OnHitEffectID] [int] NOT NULL ,
[OnHitPower] [int] NOT NULL ,
[RecipeType] [int] NOT NULL ,
[Unique] [bit] NOT NULL ,
[MaterialProgression] [int] NOT NULL ,
[BodyTintMask] [int] NOT NULL ,
[BodyTint] [int] NOT NULL ,
[InventorySubgroup] [int] NOT NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
CREATE TABLE [dbo].[t_Merchant] (
[ModuleResRefVersionID] [int] NOT NULL ,
[NameStringID] [int] NULL ,
[ScriptResRefID] [int] NULL ,
[Tag] [varchar] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[Comments] [text] COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[SellMarkUp] [int] NOT NULL ,
[BuyMarkDown] [int] NOT NULL ,
[BuyRestricted] [bit] NOT NULL ,
[Variable2da] [varchar] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
CREATE TABLE [dbo].[t_ModuleResRef] (
[ModuleID] [int] NOT NULL ,
[ResRefID] [int] NOT NULL ,
[CurrentModuleResRefVersionID] [int] NULL ,
[ScratchModuleResRefVersionID] [int] NULL ,
[CreatedOn] [datetime] NOT NULL ,
[CreatedBy] [varchar] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[LastModifiedOn] [datetime] NOT NULL ,
[LastModifiedBy] [varchar] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[t_ModuleResRefVersion] (
[ID] [int] IDENTITY (1, 1) NOT FOR REPLICATION NOT NULL ,
[ModuleID] [int] NOT NULL ,
[ResRefID] [int] NOT NULL ,
[Name] [varchar] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[Folder] [varchar] (128) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[Date] [datetime] NOT NULL ,
[UserName] [varchar] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[Status] [varchar] (1) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[Comment] [text] COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[RevisionID] [int] NULL ,
[State] [int] NOT NULL ,
[OwnerModuleID] [int] NOT NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
CREATE TABLE [dbo].[t_Placeable] (
[ModuleResRefVersionID] [int] NOT NULL ,
[NameStringID] [int] NULL ,
[Tag] [varchar] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[ScriptResRefID] [int] NULL ,
[Group] [int] NOT NULL ,
[Comments] [text] COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[Appearance] [int] NOT NULL ,
[InitialAnimation] [int] NOT NULL ,
[Health] [int] NOT NULL ,
[Indestructible] [bit] NOT NULL ,
[PickLockLevel] [int] NOT NULL ,
[KeyTag] [varchar] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[AutoRemoveKey] [bit] NOT NULL ,
[TrapDetectionDifficulty] [int] NOT NULL ,
[TrapDisarmDifficulty] [int] NOT NULL ,
[KeyRequired] [bit] NOT NULL ,
[Useable] [bit] NOT NULL ,
[Plot] [bit] NOT NULL ,
[MaxHealth] [int] NOT NULL ,
[CharacterResRefID] [int] NULL ,
[Variable2da] [varchar] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[ConversationResRefID] [int] NULL ,
[PopupTextStringID] [int] NULL ,
[Rank] [int] NOT NULL ,
[TreasureCategory] [int] NOT NULL ,
[Team] [int] NOT NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
CREATE TABLE [dbo].[t_Plot] (
[ModuleResRefVersionID] [int] NOT NULL ,
[NameStringID] [int] NULL ,
[ScriptResRefID] [int] NULL ,
[Priority] [tinyint] NOT NULL ,
[GUID] [uniqueidentifier] NOT NULL ,
[JournalImage] [varchar] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[ParentPlotResRefID] [int] NULL ,
[EntryType] [int] NOT NULL ,
[AllowPausing] [bit] NOT NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[t_PlotStatus] (
[ModuleResRefVersionID] [int] NOT NULL ,
[Flag] [int] NOT NULL ,
[Name] [varchar] (64) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[Final] [bit] NOT NULL ,
[Repeatable] [bit] NOT NULL ,
[JournalTextStringID] [int] NULL ,
[RewardID] [int] NOT NULL ,
[Comment] [text] COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[DefaultValue] [bit] NOT NULL ,
[AreaLocationTag] [varchar] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[OfferID] [varchar] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
CREATE TABLE [dbo].[t_Script] (
[ModuleResRefVersionID] [int] NOT NULL ,
[Text] [text] COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
CREATE TABLE [dbo].[t_Script_Reference] (
[ModuleResRefVersionID] [int] NOT NULL ,
[ReferencedResRefID] [int] NOT NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[t_Stage] (
[ModuleResRefVersionID] [int] NOT NULL ,
[Comment] [text] COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[Tag] [varchar] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[AreaResRefID] [int] NULL ,
[PositionX] [real] NOT NULL ,
[PositionY] [real] NOT NULL ,
[PositionZ] [real] NOT NULL ,
[Yaw] [real] NOT NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
CREATE TABLE [dbo].[t_StringLanguage] (
[ID] [int] IDENTITY (1, 1) NOT FOR REPLICATION NOT NULL ,
[Name] [varchar] (128) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[Description] [text] COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[CreatedOn] [datetime] NOT NULL ,
[CreatedBy] [varchar] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[LastModifiedOn] [datetime] NOT NULL ,
[LastModifiedBy] [varchar] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[DefaultStringLanguageTagID] [int] NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
CREATE TABLE [dbo].[t_StringLanguageTag] (
[ID] [int] IDENTITY (1, 1) NOT FOR REPLICATION NOT NULL ,
[StringLanguageID] [int] NOT NULL ,
[Tag] [varchar] (16) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[t_StringLanguageVariant] (
[ID] [int] IDENTITY (1, 1) NOT FOR REPLICATION NOT NULL ,
[StringLanguageID] [int] NOT NULL ,
[StringVariantID] [int] NOT NULL ,
[CreatedOn] [datetime] NOT NULL ,
[CreatedBy] [varchar] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[LastModifiedOn] [datetime] NOT NULL ,
[LastModifiedBy] [varchar] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[CurrentStringLanguageVariantVersionID] [int] NULL ,
[ScratchStringLanguageVariantVersionID] [int] NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[t_StringLanguageVariantVersion] (
[ID] [int] IDENTITY (1, 1) NOT FOR REPLICATION NOT NULL ,
[StringLanguageVariantID] [int] NOT NULL ,
[Status] [varchar] (3) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[PreviousStringLanguageVariantVersionID] [int] NULL ,
[StringImportSessionID] [int] NOT NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[t_StringText] (
[StringID] [int] NOT NULL ,
[ModuleResRefVersionID] [int] NOT NULL ,
[StringLanguageVariantID] [int] NOT NULL ,
[Text] [text] COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[Description] [text] COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[CreatedOn] [datetime] NOT NULL ,
[CreatedBy] [varchar] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[LastMajorUpdateOn] [datetime] NOT NULL ,
[LastMajorUpdateBy] [varchar] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[LastMinorUpdateOn] [datetime] NOT NULL ,
[LastMinorUpdateBy] [varchar] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[MinorUpdateCount] [int] NOT NULL ,
[WordCount] [int] NULL ,
[StringIsCopy] [bit] NOT NULL ,
[LastModifiedOn] [datetime] NOT NULL ,
[LastModifiedBy] [varchar] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[VORequestOn] [datetime] NOT NULL ,
[ReRecord] [bit] NOT NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
CREATE TABLE [dbo].[t_StringVersion] (
[StringID] [int] NOT NULL ,
[ModuleResRefVersionID] [int] NOT NULL ,
[StringTypeID] [int] NOT NULL ,
[OwnerResRefID] [int] NULL ,
[Define] [char] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[t_Trigger] (
[ModuleResRefVersionID] [int] NOT NULL ,
[Tag] [varchar] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[ScriptResRefID] [int] NULL ,
[Group] [int] NOT NULL ,
[Comments] [text] COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[LinkedTo] [varchar] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[Variable2da] [varchar] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
CREATE TABLE [dbo].[t_VOScript] (
[ID] [int] IDENTITY (1, 1) NOT FOR REPLICATION NOT NULL ,
[PlayerScript] [bit] NOT NULL ,
[ResourceModuleID] [int] NOT NULL ,
[ResourceResRefID] [int] NOT NULL ,
[CharacterModuleID] [int] NOT NULL ,
[CharacterResRefID] [int] NOT NULL ,
[IsActive] [bit] NOT NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[t_AreaAudioVolume] (
[ModuleResRefVersionID] [int] NOT NULL ,
[InstanceID] [int] NOT NULL ,
[PositionX] [real] NOT NULL ,
[PositionY] [real] NOT NULL ,
[PositionZ] [real] NOT NULL ,
[OrientationX] [real] NOT NULL ,
[OrientationY] [real] NOT NULL ,
[OrientationZ] [real] NOT NULL ,
[Tag] [varchar] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[AudioVolumeName] [varchar] (64) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[Comments] [text] COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[ReverbPreset] [varchar] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[GUID] [uniqueidentifier] NOT NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
CREATE TABLE [dbo].[t_AreaAudioVolumeGeometry] (
[ModuleResRefVersionID] [int] NOT NULL ,
[AreaAudioVolumeInstanceID] [int] NOT NULL ,
[InstanceID] [int] NOT NULL ,
[VertexX] [real] NOT NULL ,
[VertexY] [real] NOT NULL ,
[VertexZ] [real] NOT NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[t_AreaAudioVolumeSound] (
[ModuleResRefVersionID] [int] NOT NULL ,
[AudioVolumeInstanceID] [int] NOT NULL ,
[InstanceID] [int] NOT NULL ,
[Active] [bit] NOT NULL ,
[Comments] [text] COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[PositionX] [real] NOT NULL ,
[PositionY] [real] NOT NULL ,
[PositionZ] [real] NOT NULL ,
[OrientationX] [real] NOT NULL ,
[OrientationY] [real] NOT NULL ,
[OrientationZ] [real] NOT NULL ,
[Tag] [varchar] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[SoundName] [varchar] (255) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[Volume] [real] NOT NULL ,
[Pitch] [real] NOT NULL ,
[FadeIn] [int] NOT NULL ,
[FadeOut] [int] NOT NULL ,
[MaxRangeMult] [real] NOT NULL ,
[ConeInside] [real] NOT NULL ,
[ConeOutside] [real] NOT NULL ,
[ConeOutsideVolume] [real] NOT NULL ,
[Priority] [int] NOT NULL ,
[Occludable] [bit] NOT NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
CREATE TABLE [dbo].[t_AreaInstanceAssociations] (
[ModuleResRefVersionID] [int] NOT NULL ,
[OwnerGUID] [uniqueidentifier] NOT NULL ,
[ChildGUID] [uniqueidentifier] NOT NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[t_AreaMusicVolumeGeometry] (
[ModuleResRefVersionID] [int] NOT NULL ,
[AreaMusicVolumeInstanceID] [int] NOT NULL ,
[InstanceID] [int] NOT NULL ,
[VertexX] [real] NOT NULL ,
[VertexY] [real] NOT NULL ,
[VertexZ] [real] NOT NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[t_AreaObjectGeometry] (
[ModuleResRefVersionID] [int] NOT NULL ,
[AreaObjectInstanceID] [int] NOT NULL ,
[InstanceID] [int] NOT NULL ,
[VertexX] [real] NOT NULL ,
[VertexY] [real] NOT NULL ,
[VertexZ] [real] NOT NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[t_AreaObjectVariable] (
[ModuleResRefVersionID] [int] NOT NULL ,
[AreaObjectInstanceID] [int] NOT NULL ,
[Name] [varchar] (64) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[Type] [int] NOT NULL ,
[Data] [varchar] (128) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[t_AreaReverbVolume] (
[ModuleResRefVersionID] [int] NOT NULL ,
[InstanceID] [int] NOT NULL ,
[PositionX] [real] NOT NULL ,
[PositionY] [real] NOT NULL ,
[PositionZ] [real] NOT NULL ,
[OrientationX] [real] NOT NULL ,
[OrientationY] [real] NOT NULL ,
[OrientationZ] [real] NOT NULL ,
[Tag] [varchar] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[ReverbVolumeName] [varchar] (64) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[ReverbPreset] [varchar] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[Comments] [text] COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[Priority] [int] NOT NULL ,
[GUID] [uniqueidentifier] NOT NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
CREATE TABLE [dbo].[t_AreaReverbVolumeGeometry] (
[ModuleResRefVersionID] [int] NOT NULL ,
[AreaReverbVolumeInstanceID] [int] NOT NULL ,
[InstanceID] [int] NOT NULL ,
[VertexX] [real] NOT NULL ,
[VertexY] [real] NOT NULL ,
[VertexZ] [real] NOT NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[t_AreaSound] (
[ModuleResRefVersionID] [int] NOT NULL ,
[ID] [int] NOT NULL ,
[Active] [bit] NOT NULL ,
[Comments] [text] COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[PositionX] [real] NOT NULL ,
[PositionY] [real] NOT NULL ,
[PositionZ] [real] NOT NULL ,
[OrientationX] [real] NOT NULL ,
[OrientationY] [real] NOT NULL ,
[OrientationZ] [real] NOT NULL ,
[Tag] [varchar] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[SoundName] [varchar] (255) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[Volume] [real] NOT NULL ,
[Pitch] [real] NOT NULL ,
[FadeIn] [int] NOT NULL ,
[FadeOut] [int] NOT NULL ,
[MaxRangeMult] [real] NOT NULL ,
[ConeInside] [real] NOT NULL ,
[ConeOutside] [real] NOT NULL ,
[ConeOutsideVolume] [real] NOT NULL ,
[Priority] [int] NOT NULL ,
[Occludable] [bit] NOT NULL ,
[GUID] [uniqueidentifier] NOT NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
CREATE TABLE [dbo].[t_AreaWaypoint] (
[ModuleResRefVersionID] [int] NOT NULL ,
[InstanceID] [int] NOT NULL ,
[PositionX] [real] NOT NULL ,
[PositionY] [real] NOT NULL ,
[PositionZ] [real] NOT NULL ,
[OrientationX] [real] NOT NULL ,
[OrientationY] [real] NOT NULL ,
[OrientationZ] [real] NOT NULL ,
[Tag] [varchar] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[WaypointName] [varchar] (64) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[Group] [int] NOT NULL ,
[MapNoteEnabled] [bit] NOT NULL ,
[Colour] [int] NOT NULL ,
[Comments] [text] COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[MapNoteType] [int] NOT NULL ,
[MapNoteStringID] [int] NULL ,
[GUID] [uniqueidentifier] NOT NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
CREATE TABLE [dbo].[t_ConversationAnimations] (
[ModuleResRefVersionID] [int] NOT NULL ,
[LineIndex] [int] NOT NULL ,
[InstanceID] [int] NOT NULL ,
[Tag] [varchar] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[Animation] [varchar] (1024) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[StartTime] [real] NOT NULL ,
[Weight] [real] NOT NULL ,
[Speed] [real] NOT NULL ,
[StartOffset] [real] NOT NULL ,
[BlendIn] [real] NOT NULL ,
[EndOffset] [real] NOT NULL ,
[BlendOut] [real] NOT NULL ,
[Locked] [bit] NOT NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[t_CreatureAbility] (
[ModuleResRefVersionID] [int] NOT NULL ,
[Ability] [int] NOT NULL ,
[Type] [tinyint] NOT NULL ,
[Level] [int] NOT NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[t_CutsceneActionFBEParameter] (
[ModuleResRefVersionID] [int] NOT NULL ,
[CutsceneObjectInstanceID] [int] NOT NULL ,
[CutsceneTrackInstanceID] [int] NOT NULL ,
[CutsceneActionInstanceID] [int] NOT NULL ,
[InstanceID] [int] NOT NULL ,
[Name] [varchar] (1024) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[Animatable] [bit] NOT NULL ,
[Value] [real] NOT NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[t_CutsceneActionTransition] (
[ModuleResRefVersionID] [int] NOT NULL ,
[CutsceneObjectInstanceID] [int] NOT NULL ,
[CutsceneTrackInstanceIDA] [int] NOT NULL ,
[CutsceneActionInstanceIDA] [int] NOT NULL ,
[CutsceneTrackInstanceIDB] [int] NOT NULL ,
[CutsceneActionInstanceIDB] [int] NOT NULL ,
[TransitionType] [int] NOT NULL ,
[TimeWarp] [bit] NOT NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[t_ItemProperty] (
[ModuleResRefVersionID] [int] NOT NULL ,
[PropertyID] [int] NOT NULL ,
[Power] [int] NOT NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[t_MapPin] (
[ModuleResRefVersionID] [int] NOT NULL ,
[InstanceID] [int] NOT NULL ,
[Tag] [varchar] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[PinType] [int] NOT NULL ,
[InitialState] [int] NOT NULL ,
[TerrainType] [int] NOT NULL ,
[LocationX] [int] NOT NULL ,
[LocationY] [int] NOT NULL ,
[Name] [varchar] (64) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[AreaTag] [varchar] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[WaypointOverride] [varchar] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[NameStringID] [int] NULL ,
[TooltipStringID] [int] NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[t_MapTrail] (
[ModuleResRefVersionID] [int] NOT NULL ,
[InstanceID] [int] NOT NULL ,
[Name] [varchar] (64) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[Pin1Tag] [varchar] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[Pin2Tag] [varchar] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[t_MapTrailPoint] (
[ModuleResRefVersionID] [int] NOT NULL ,
[MapTrailInstanceID] [int] NOT NULL ,
[InstanceID] [int] NOT NULL ,
[LocationX] [int] NOT NULL ,
[LocationY] [int] NOT NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[t_MerchantRestrictedItem] (
[ModuleResRefVersionID] [int] NOT NULL ,
[BaseType] [int] NOT NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[t_PlotAssist] (
[ModuleResRefVersionID] [int] NOT NULL ,
[Flag] [int] NOT NULL ,
[Tag] [varchar] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[SetPlotAdvancer] [bit] NOT NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[t_StageFBEParameter] (
[ModuleResRefVersionID] [int] NOT NULL ,
[StageObjectInstanceID] [int] NOT NULL ,
[InstanceID] [int] NOT NULL ,
[Name] [varchar] (1024) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[Value] [real] NOT NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[t_StageObjectReference] (
[ModuleResRefVersionID] [int] NOT NULL ,
[SourceInstanceID] [int] NOT NULL ,
[DestinationTag] [varchar] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[t_VOSessionInstanceVersion] (
[ID] [int] IDENTITY (1, 1) NOT FOR REPLICATION NOT NULL ,
[VOSessionID] [int] NOT NULL ,
[VOSessionInstanceID] [int] NOT NULL ,
[VOScriptInstanceID] [int] NULL ,
[Active] [char] (1) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[CustomName] [varchar] (256) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[LinesRecorded] [int] NOT NULL ,
[Notes] [text] COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[SentAudioReferencesToStudio] [varchar] (30) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[SentScriptsToStudio] [varchar] (30) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[ReceivedAudioFromStudio] [varchar] (30) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[SentAudioToEditor] [varchar] (30) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[ReceivedAudioFromEditor] [varchar] (30) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[PicksComplete] [varchar] (30) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[AudioProcessed] [varchar] (30) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[ReadyForGame] [varchar] (30) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[ScriptFolder] [varchar] (260) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[AudioFolder] [varchar] (260) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[ColorR] [real] NOT NULL ,
[ColorG] [real] NOT NULL ,
[ColorB] [real] NOT NULL ,
[CreatedOn] [datetime] NOT NULL ,
[CreatedBy] [varchar] (64) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
CREATE TABLE [dbo].[t_VOSessionVersion] (
[ID] [int] IDENTITY (1, 1) NOT FOR REPLICATION NOT NULL ,
[VOSessionID] [int] NOT NULL ,
[Active] [char] (1) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[Date] [datetime] NOT NULL ,
[Duration] [int] NULL ,
[Actor] [varchar] (256) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[Studio] [varchar] (256) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[Notes] [text] COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[ColorR] [real] NOT NULL ,
[ColorG] [real] NOT NULL ,
[ColorB] [real] NOT NULL ,
[CreatedOn] [datetime] NOT NULL ,
[CreatedBy] [varchar] (64) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
CREATE TABLE [dbo].[t_Variable] (
[ModuleResRefVersionID] [int] NOT NULL ,
[Name] [varchar] (64) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[Type] [int] NOT NULL ,
[Data] [varchar] (128) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[t_AreaList] (
[ModuleResRefVersionID] [int] NOT NULL ,
[Description] [text] COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
CREATE TABLE [dbo].[t_AreaMusicVolume] (
[ModuleResRefVersionID] [int] NOT NULL ,
[InstanceID] [int] NOT NULL ,
[PositionX] [real] NOT NULL ,
[PositionY] [real] NOT NULL ,
[PositionZ] [real] NOT NULL ,
[OrientationX] [real] NOT NULL ,
[OrientationY] [real] NOT NULL ,
[OrientationZ] [real] NOT NULL ,
[Tag] [varchar] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[MusicVolumeName] [varchar] (64) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[Comments] [text] COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[EnterState] [int] NOT NULL ,
[EnterStateDelay] [int] NOT NULL ,
[ExitState] [int] NOT NULL ,
[ExitStateDelay] [int] NOT NULL ,
[ScriptDelay] [int] NOT NULL ,
[ScriptResRefID] [int] NULL ,
[GUID] [uniqueidentifier] NOT NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
CREATE TABLE [dbo].[t_AreaObject] (
[ModuleResRefVersionID] [int] NOT NULL ,
[InstanceID] [int] NOT NULL ,
[ObjectResRefID] [int] NOT NULL ,
[PositionX] [real] NOT NULL ,
[PositionY] [real] NOT NULL ,
[PositionZ] [real] NOT NULL ,
[OrientationX] [real] NOT NULL ,
[OrientationY] [real] NOT NULL ,
[OrientationZ] [real] NOT NULL ,
[Active] [bit] NOT NULL ,
[Platform] [int] NOT NULL ,
[Tag] [varchar] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[InitialAnimation] [int] NOT NULL ,
[Team] [int] NOT NULL ,
[Trackable] [bit] NOT NULL ,
[RoomID1] [int] NOT NULL ,
[RoomID2] [int] NOT NULL ,
[Rank] [int] NOT NULL ,
[TreasureCategory] [int] NOT NULL ,
[WeaponsDrawn] [bit] NOT NULL ,
[PickLockLevel] [int] NOT NULL ,
[GUID] [uniqueidentifier] NOT NULL ,
[InteractionRadius] [real] NOT NULL ,
[TrapDetectionDifficulty] [int] NOT NULL ,
[TrapDisarmDifficulty] [int] NOT NULL ,
[Useable] [smallint] NOT NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[t_AssociatedResource] (
[ModuleResRefVersionID] [int] NOT NULL ,
[ResRefID] [int] NOT NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[t_Character] (
[ModuleResRefVersionID] [int] NOT NULL ,
[Name] [varchar] (64) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[Description] [text] COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[Phonetic] [varchar] (64) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[Image] [image] NULL ,
[Age] [int] NOT NULL ,
[Gender] [int] NOT NULL ,
[Occupation] [text] COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[Morals] [text] COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[Appearance] [text] COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[Flaws] [text] COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[Skills] [text] COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[SpeechPatterns] [text] COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[VORecorded] [bit] NOT NULL ,
[RoleResRefID] [int] NULL ,
[CharacterType] [int] NOT NULL ,
[Race] [int] NOT NULL ,
[Language] [int] NOT NULL ,
[Accent] [varchar] (64) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[Purpose] [text] COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[RelationshipToPlayer] [text] COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[Archetype] [text] COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[Demeanor] [text] COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[ImageFilename] [varchar] (260) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[PersonalBackground] [text] COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[CulturalBackground] [text] COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[Intelligence] [int] NOT NULL ,
[TiesToOtherCharacters] [text] COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[CombatSoundsetNeeded] [bit] NOT NULL ,
[Plots] [text] COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[Player] [bit] NOT NULL ,
[VOCastingColor] [int] NOT NULL ,
[VOCastingNotes] [ntext] COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[SoundSetResRefID] [int] NULL ,
[FXAName] [varchar] (64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[SoundsetResRefIDIsSharedLink] [bit] NOT NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
CREATE TABLE [dbo].[t_ConversationCinematics] (
[ModuleResRefVersionID] [int] NOT NULL ,
[LineIndex] [int] NOT NULL ,
[Place] [varchar] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[TagOverride] [bit] NOT NULL ,
[Tag] [varchar] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[LookAtOverride] [bit] NOT NULL ,
[LookAt] [varchar] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[PoseOverride] [bit] NOT NULL ,
[FunctionalShotResRefID] [int] NULL ,
[FunctionalShotActor] [varchar] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[Pose] [int] NOT NULL ,
[HeadLookAtOverride] [bit] NOT NULL ,
[HeadLookAt] [varchar] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[ActivationAction] [int] NOT NULL ,
[TransitionDelay] [real] NOT NULL ,
[MappingRequired] [bit] NOT NULL ,
[LockPose] [bit] NOT NULL ,
[HelmetOverride] [bit] NOT NULL ,
[Helmet] [int] NOT NULL ,
[WeaponsOverride] [bit] NOT NULL ,
[Weapons] [int] NOT NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[t_ConversationTagMap] (
[ModuleResRefVersionID] [int] NOT NULL ,
[LineIndex] [int] NOT NULL ,
[Type] [int] NOT NULL ,
[KeyTag] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[ValueTag] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[ValueResRefID] [int] NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[t_ConversationTransition] (
[ModuleResRefVersionID] [int] NOT NULL ,
[FromIndex] [int] NOT NULL ,
[ToIndex] [int] NOT NULL ,
[Order] [int] NOT NULL ,
[IsLink] [bit] NOT NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[t_Inventory] (
[ModuleResRefVersionID] [int] NOT NULL ,
[InstanceID] [int] NOT NULL ,
[ItemResRefID] [int] NOT NULL ,
[StackSize] [int] NOT NULL ,
[Slot] [int] NULL ,
[Droppable] [bit] NOT NULL ,
[Stealable] [bit] NOT NULL ,
[Infinite] [bit] NOT NULL ,
[SetNumber] [int] NOT NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[t_Map] (
[ModuleResRefVersionID] [int] NOT NULL ,
[Map] [int] NOT NULL ,
[Tag] [varchar] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[ParentMapResRefID] [int] NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[t_Role] (
[ModuleResRefVersionID] [int] NOT NULL ,
[Name] [varchar] (64) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[Description] [text] COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
CREATE TABLE [dbo].[t_StageObject] (
[ModuleResRefVersionID] [int] NOT NULL ,
[InstanceID] [int] NOT NULL ,
[Type] [int] NOT NULL ,
[PositionX] [real] NOT NULL ,
[PositionY] [real] NOT NULL ,
[PositionZ] [real] NOT NULL ,
[OrientationX] [real] NOT NULL ,
[OrientationY] [real] NOT NULL ,
[OrientationZ] [real] NOT NULL ,
[Tag] [varchar] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[real1] [real] NOT NULL ,
[LookingFrom] [varchar] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[LookingAtPrimary] [varchar] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[CreatureResRefID] [int] NULL ,
[Pose] [int] NOT NULL ,
[DefaultCamera] [varchar] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[CloseUpCamera] [varchar] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[WideCamera] [varchar] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[LookAtType] [int] NOT NULL ,
[ApplyDOF] [bit] NOT NULL ,
[OverrideDOF] [bit] NOT NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[t_StringLanguageVariantText] (
[StringLanguageVariantVersionID] [int] NOT NULL ,
[StringID] [int] NOT NULL ,
[Text] [ntext] COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[StringImportSessionID] [int] NOT NULL ,
[IsBlank] [bit] NOT NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
CREATE TABLE [dbo].[t_VOScriptBatchPrint] (
[ID] [int] IDENTITY (1, 1) NOT FOR REPLICATION NOT NULL ,
[SPID] [int] NOT NULL ,
[VOScriptID] [int] NOT NULL ,
[VOScriptInstanceID] [int] NULL ,
[VOScriptInstanceStringID] [int] NULL ,
[PreviousVOScriptInstanceStringID] [int] NULL ,
[PrintedOn] [datetime] NOT NULL ,
[ModuleResRefVersionID] [int] NOT NULL ,
[StringLanguageID] [int] NOT NULL ,
[StringVariantID] [int] NULL ,
[StringID] [int] NULL ,
[StringLanguageVariantVersionID] [int] NULL ,
[ScriptType] [char] (1) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[ScriptParent] [char] (1) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[Revision] [int] NULL ,
[AudioFileName] [varchar] (255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[CompareDate] [datetime] NULL ,
[IsForeign] [bit] NOT NULL ,
[Comment] [ntext] COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[OutputFolder] [ntext] COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
CREATE TABLE [dbo].[t_VOScriptInstance] (
[ID] [int] IDENTITY (1, 1) NOT FOR REPLICATION NOT NULL ,
[VOScriptID] [int] NOT NULL ,
[Active] [char] (1) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[StringLanguageID] [int] NOT NULL ,
[PrintedOn] [datetime] NOT NULL ,
[ScriptType] [char] (1) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[ScriptParent] [char] (1) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[CreatedOn] [datetime] NOT NULL ,
[CreatedBy] [varchar] (64) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[Comment] [ntext] COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[OutputFolder] [ntext] COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
CREATE TABLE [dbo].[t_VOScriptInstanceString] (
[ID] [int] IDENTITY (1, 1) NOT FOR REPLICATION NOT NULL ,
[VOScriptInstanceID] [int] NOT NULL ,
[Active] [char] (1) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[Status] [char] (1) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[Revision] [int] NOT NULL ,
[CompareDate] [datetime] NOT NULL ,
[PreviousVOScriptInstanceStringID] [int] NULL ,
[IsForeign] [bit] NOT NULL ,
[StringID] [int] NOT NULL ,
[ModuleResRefVersionID] [int] NOT NULL ,
[StringLanguageVariantID] [int] NOT NULL ,
[StringLanguageVariantVersionID] [int] NULL ,
[AudioFileName] [varchar] (255) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[LastModifiedOn] [datetime] NOT NULL ,
[LastModifiedBy] [varchar] (64) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[StringVariantID] [int] NOT NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[t_VOScriptInstanceStringStatus] (
[ID] [int] IDENTITY (1, 1) NOT FOR REPLICATION NOT NULL ,
[VOScriptInstanceStringID] [int] NOT NULL ,
[Active] [char] (1) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[Action] [char] (1) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[Revision] [int] NOT NULL ,
[CompareDate] [datetime] NOT NULL ,
[CreatedOn] [datetime] NOT NULL ,
[CreatedBy] [varchar] (64) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[Comment] [ntext] COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
CREATE TABLE [dbo].[t_VOScriptStringRevision] (
[StringID] [int] NOT NULL ,
[StringLanguageID] [int] NOT NULL ,
[StringVariantID] [int] NOT NULL ,
[Revision] [int] NOT NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[t_VOSession] (
[ID] [int] IDENTITY (1, 1) NOT FOR REPLICATION NOT NULL ,
[LanguageID] [int] NOT NULL
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[t_CharacterDelta] WITH NOCHECK ADD
CONSTRAINT [PK_t_CharacterDelta] PRIMARY KEY CLUSTERED
(
[ID]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[t_GlobalParameters] WITH NOCHECK ADD
CONSTRAINT [PK_t_GlobalParameters] PRIMARY KEY CLUSTERED
(
[Name]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[t_KeyGenStringID] WITH NOCHECK ADD
CONSTRAINT [PK_t_KeyGenStringID] PRIMARY KEY CLUSTERED
(
[LastUsedID]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[t_ModuleType] WITH NOCHECK ADD
CONSTRAINT [PK_t_ModuleType] PRIMARY KEY CLUSTERED
(
[ID]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[t_ResourceTables] WITH NOCHECK ADD
CONSTRAINT [PK_t_ResourceTables] PRIMARY KEY CLUSTERED
(
[ID]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[t_StringExportLabel] WITH NOCHECK ADD
CONSTRAINT [PK_StringExportLabel] PRIMARY KEY CLUSTERED
(
[ID]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[t_StringImportSession] WITH NOCHECK ADD
CONSTRAINT [PK_StringImportSession] PRIMARY KEY CLUSTERED
(
[ID]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[t_StringTable] WITH NOCHECK ADD
CONSTRAINT [PK_t_StringTable] PRIMARY KEY CLUSTERED
(
[ID]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[t_StringType] WITH NOCHECK ADD
CONSTRAINT [PK_t_StringType] PRIMARY KEY CLUSTERED
(
[ID]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[t_StringVariant] WITH NOCHECK ADD
CONSTRAINT [PK_t_StringVariant] PRIMARY KEY CLUSTERED
(
[ID]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[t_VOScriptInstanceManagement] WITH NOCHECK ADD
CONSTRAINT [PK_t_VOScriptInstanceManagement] PRIMARY KEY CLUSTERED
(
[ID]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[t_VOScriptLineCharacterInternal] WITH NOCHECK ADD
CONSTRAINT [PK_t_VOScriptLineCharacterInternal] PRIMARY KEY CLUSTERED
(
[ID]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[t_VOSessionInstance] WITH NOCHECK ADD
CONSTRAINT [PK_t_VOSessionInstance] PRIMARY KEY CLUSTERED
(
[ID]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[t_ResourceDefinition] WITH NOCHECK ADD
CONSTRAINT [PK_t_ResourceDefinition] PRIMARY KEY CLUSTERED
(
[ResType]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[t_ResourceTableRelationship] WITH NOCHECK ADD
CONSTRAINT [PK_t_ResourceTableRelationship] PRIMARY KEY CLUSTERED
(
[ParentResourceTableID],
[ChildResourceTableID],
[FullPath]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[t_String] WITH NOCHECK ADD
CONSTRAINT [PK_t_String] PRIMARY KEY CLUSTERED
(
[ID]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[t_StringExportHistory] WITH NOCHECK ADD
CONSTRAINT [PK_StringExportHistory] PRIMARY KEY CLUSTERED
(
[ID]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[t_StringExportLabelResourceStats] WITH NOCHECK ADD
CONSTRAINT [PK_StringExportLabelResourceStats] PRIMARY KEY CLUSTERED
(
[StringExportLabelID],
[ModuleResRefVersionID]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[t_StringExportLabelStringTypeStats] WITH NOCHECK ADD
CONSTRAINT [PK_StringExportLabelStringTypeStats] PRIMARY KEY CLUSTERED
(
[StringExportLabelID],
[StringTypeID]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[t_ResRef] WITH NOCHECK ADD
CONSTRAINT [PK_t_ResRef] PRIMARY KEY CLUSTERED
(
[ID]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[t_StringExportHistoryAdjustmentLog] WITH NOCHECK ADD
CONSTRAINT [PK_StringExportHistoryAdjustmentLog] PRIMARY KEY CLUSTERED
(
[ID]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[t_Module] WITH NOCHECK ADD
CONSTRAINT [PK_t_Module] PRIMARY KEY CLUSTERED
(
[ID]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[t_StringSound] WITH NOCHECK ADD
CONSTRAINT [PK_t_StringSound] PRIMARY KEY CLUSTERED
(
[ID]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[t_ModuleAssociation] WITH NOCHECK ADD
CONSTRAINT [PK_t_ModuleAssociation] PRIMARY KEY CLUSTERED
(
[ParentModuleID],
[ChildModuleID],
[FullPath]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[t_ModuleVariable] WITH NOCHECK ADD
CONSTRAINT [PK_t_ModuleVariable] PRIMARY KEY CLUSTERED
(
[ModuleID],
[Name]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[t_Area] WITH NOCHECK ADD
CONSTRAINT [PK_t_Area] PRIMARY KEY CLUSTERED
(
[ModuleResRefVersionID]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[t_Conversation] WITH NOCHECK ADD
CONSTRAINT [PK_t_Conversation] PRIMARY KEY CLUSTERED
(
[ModuleResRefVersionID]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[t_ConversationLine] WITH NOCHECK ADD
CONSTRAINT [PK_t_ConversationLine] PRIMARY KEY CLUSTERED
(
[ModuleResRefVersionID],
[Index]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[t_Creature] WITH NOCHECK ADD
CONSTRAINT [PK_t_Creature] PRIMARY KEY CLUSTERED
(
[ModuleResRefVersionID]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[t_Cutscene] WITH NOCHECK ADD
CONSTRAINT [PK_t_Cutscene] PRIMARY KEY CLUSTERED
(
[ModuleResRefVersionID]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[t_CutsceneAction] WITH NOCHECK ADD
CONSTRAINT [PK_t_CutsceneAction] PRIMARY KEY CLUSTERED
(
[ModuleResRefVersionID],
[CutsceneObjectInstanceID],
[CutsceneTrackInstanceID],
[InstanceID]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[t_CutsceneObject] WITH NOCHECK ADD
CONSTRAINT [PK_t_CutsceneObject] PRIMARY KEY CLUSTERED
(
[ModuleResRefVersionID],
[InstanceID]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[t_CutsceneTrack] WITH NOCHECK ADD
CONSTRAINT [PK_t_CutsceneTrack] PRIMARY KEY CLUSTERED
(
[ModuleResRefVersionID],
[CutsceneObjectInstanceID],
[InstanceID]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[t_Item] WITH NOCHECK ADD
CONSTRAINT [PK_t_Item] PRIMARY KEY CLUSTERED
(
[ModuleResRefVersionID]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[t_Merchant] WITH NOCHECK ADD
CONSTRAINT [PK_t_Merchant] PRIMARY KEY CLUSTERED
(
[ModuleResRefVersionID]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[t_ModuleResRef] WITH NOCHECK ADD
CONSTRAINT [PK_t_ModuleResRef] PRIMARY KEY CLUSTERED
(
[ModuleID],
[ResRefID]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[t_ModuleResRefVersion] WITH NOCHECK ADD
CONSTRAINT [PK_t_ModuleResRefVersion] PRIMARY KEY CLUSTERED
(
[ID]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[t_Placeable] WITH NOCHECK ADD
CONSTRAINT [PK_t_Placeable] PRIMARY KEY CLUSTERED
(
[ModuleResRefVersionID]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[t_Plot] WITH NOCHECK ADD
CONSTRAINT [PK_t_Plot] PRIMARY KEY CLUSTERED
(
[ModuleResRefVersionID]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[t_PlotStatus] WITH NOCHECK ADD
CONSTRAINT [PK_t_PlotStatus] PRIMARY KEY CLUSTERED
(
[ModuleResRefVersionID],
[Flag]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[t_Script] WITH NOCHECK ADD
CONSTRAINT [PK_t_Script] PRIMARY KEY CLUSTERED
(
[ModuleResRefVersionID]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[t_Script_Reference] WITH NOCHECK ADD
CONSTRAINT [PK_t_Script_Reference] PRIMARY KEY CLUSTERED
(
[ModuleResRefVersionID],
[ReferencedResRefID]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[t_Stage] WITH NOCHECK ADD
CONSTRAINT [PK_t_Stage] PRIMARY KEY CLUSTERED
(
[ModuleResRefVersionID]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[t_StringLanguage] WITH NOCHECK ADD
CONSTRAINT [PK_t_StringLanguage] PRIMARY KEY CLUSTERED
(
[ID]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[t_StringLanguageTag] WITH NOCHECK ADD
CONSTRAINT [PK_StringLanguageTag] PRIMARY KEY CLUSTERED
(
[ID]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[t_StringLanguageVariant] WITH NOCHECK ADD
CONSTRAINT [PK_t_StringLanguageVariant] PRIMARY KEY CLUSTERED
(
[ID]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[t_StringLanguageVariantVersion] WITH NOCHECK ADD
CONSTRAINT [PK_StringLanguageVariantVersion] PRIMARY KEY CLUSTERED
(
[ID]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[t_StringText] WITH NOCHECK ADD
CONSTRAINT [PK_t_StringText] PRIMARY KEY CLUSTERED
(
[StringID],
[ModuleResRefVersionID],
[StringLanguageVariantID]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[t_StringVersion] WITH NOCHECK ADD
CONSTRAINT [PK_t_StringVersion] PRIMARY KEY CLUSTERED
(
[StringID],
[ModuleResRefVersionID]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[t_Trigger] WITH NOCHECK ADD
CONSTRAINT [PK_t_Trigger] PRIMARY KEY CLUSTERED
(
[ModuleResRefVersionID]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[t_VOScript] WITH NOCHECK ADD
CONSTRAINT [PK_VOScript] PRIMARY KEY CLUSTERED
(
[ID]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[t_AreaAudioVolume] WITH NOCHECK ADD
CONSTRAINT [PK_t_AreaAudioVolume] PRIMARY KEY CLUSTERED
(
[ModuleResRefVersionID],
[InstanceID]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[t_AreaAudioVolumeGeometry] WITH NOCHECK ADD
CONSTRAINT [PK_t_AreaAudioVolumeGeometry] PRIMARY KEY CLUSTERED
(
[ModuleResRefVersionID],
[AreaAudioVolumeInstanceID],
[InstanceID]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[t_AreaAudioVolumeSound] WITH NOCHECK ADD
CONSTRAINT [PK_t_AreaAudioVolumeSound] PRIMARY KEY CLUSTERED
(
[ModuleResRefVersionID],
[AudioVolumeInstanceID],
[InstanceID]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[t_AreaInstanceAssociations] WITH NOCHECK ADD
CONSTRAINT [PK_t_AreaInstanceAssociations] PRIMARY KEY CLUSTERED
(
[ModuleResRefVersionID],
[OwnerGUID],
[ChildGUID]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[t_AreaMusicVolumeGeometry] WITH NOCHECK ADD
CONSTRAINT [PK_t_AreaMusicVolumeGeometry] PRIMARY KEY CLUSTERED
(
[ModuleResRefVersionID],
[AreaMusicVolumeInstanceID],
[InstanceID]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[t_AreaObjectGeometry] WITH NOCHECK ADD
CONSTRAINT [PK_t_AreaObjectGeometry] PRIMARY KEY CLUSTERED
(
[ModuleResRefVersionID],
[AreaObjectInstanceID],
[InstanceID]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[t_AreaObjectVariable] WITH NOCHECK ADD
CONSTRAINT [PK_t_AreaObjectVariable] PRIMARY KEY CLUSTERED
(
[ModuleResRefVersionID],
[AreaObjectInstanceID],
[Name]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[t_AreaReverbVolume] WITH NOCHECK ADD
CONSTRAINT [PK_t_AreaReverbVolume] PRIMARY KEY CLUSTERED
(
[ModuleResRefVersionID],
[InstanceID]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[t_AreaReverbVolumeGeometry] WITH NOCHECK ADD
CONSTRAINT [PK_t_AreaReverbVolumeGeometry] PRIMARY KEY CLUSTERED
(
[ModuleResRefVersionID],
[AreaReverbVolumeInstanceID],
[InstanceID]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[t_AreaSound] WITH NOCHECK ADD
CONSTRAINT [PK_t_AreaSound] PRIMARY KEY CLUSTERED
(
[ModuleResRefVersionID],
[ID]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[t_AreaWaypoint] WITH NOCHECK ADD
CONSTRAINT [PK_t_AreaWaypoint] PRIMARY KEY CLUSTERED
(
[ModuleResRefVersionID],
[InstanceID]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[t_ConversationAnimations] WITH NOCHECK ADD
CONSTRAINT [PK_t_ConversationAnimations] PRIMARY KEY CLUSTERED
(
[ModuleResRefVersionID],
[LineIndex],
[InstanceID],
[Tag]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[t_CreatureAbility] WITH NOCHECK ADD
CONSTRAINT [PK_t_Skill] PRIMARY KEY CLUSTERED
(
[ModuleResRefVersionID],
[Ability],
[Type]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[t_CutsceneActionFBEParameter] WITH NOCHECK ADD
CONSTRAINT [PK_t_CutsceneActionFBEParameter] PRIMARY KEY CLUSTERED
(
[ModuleResRefVersionID],
[CutsceneObjectInstanceID],
[CutsceneTrackInstanceID],
[CutsceneActionInstanceID],
[InstanceID]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[t_CutsceneActionTransition] WITH NOCHECK ADD
CONSTRAINT [PK_t_CutsceneActionTransition] PRIMARY KEY CLUSTERED
(
[ModuleResRefVersionID],
[CutsceneObjectInstanceID],
[CutsceneTrackInstanceIDA],
[CutsceneActionInstanceIDA],
[CutsceneTrackInstanceIDB],
[CutsceneActionInstanceIDB]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[t_ItemProperty] WITH NOCHECK ADD
CONSTRAINT [PK_t_ItemProperty] PRIMARY KEY CLUSTERED
(
[ModuleResRefVersionID],
[PropertyID]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[t_MapPin] WITH NOCHECK ADD
CONSTRAINT [PK_t_MapPin] PRIMARY KEY CLUSTERED
(
[ModuleResRefVersionID],
[InstanceID]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[t_MapTrail] WITH NOCHECK ADD
CONSTRAINT [PK_t_MapTrail] PRIMARY KEY CLUSTERED
(
[ModuleResRefVersionID],
[InstanceID]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[t_MapTrailPoint] WITH NOCHECK ADD
CONSTRAINT [PK_t_MapTrailPoint] PRIMARY KEY CLUSTERED
(
[ModuleResRefVersionID],
[MapTrailInstanceID],
[InstanceID]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[t_MerchantRestrictedItem] WITH NOCHECK ADD
CONSTRAINT [PK_t_MerchantRestrictedItem] PRIMARY KEY CLUSTERED
(
[ModuleResRefVersionID],
[BaseType]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[t_PlotAssist] WITH NOCHECK ADD
CONSTRAINT [PK_t_PlotAssist] PRIMARY KEY CLUSTERED
(
[ModuleResRefVersionID],
[Flag],
[Tag]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[t_StageFBEParameter] WITH NOCHECK ADD
CONSTRAINT [PK_t_StageFBEParameter] PRIMARY KEY CLUSTERED
(
[ModuleResRefVersionID],
[StageObjectInstanceID],
[InstanceID]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[t_StageObjectReference] WITH NOCHECK ADD
CONSTRAINT [PK_t_StageObjectReference] PRIMARY KEY CLUSTERED
(
[ModuleResRefVersionID],
[SourceInstanceID],
[DestinationTag]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[t_VOSessionInstanceVersion] WITH NOCHECK ADD
CONSTRAINT [PK_t_VOSessionInstanceVersion] PRIMARY KEY CLUSTERED
(
[ID]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[t_VOSessionVersion] WITH NOCHECK ADD
CONSTRAINT [PK_t_VOSessionVersion] PRIMARY KEY CLUSTERED
(
[ID]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[t_Variable] WITH NOCHECK ADD
CONSTRAINT [PK_t_Variable] PRIMARY KEY CLUSTERED
(
[ModuleResRefVersionID],
[Name]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[t_AreaList] WITH NOCHECK ADD
CONSTRAINT [PK_t_AreaList] PRIMARY KEY CLUSTERED
(
[ModuleResRefVersionID]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[t_AreaMusicVolume] WITH NOCHECK ADD
CONSTRAINT [PK_t_AreaMusicVolume] PRIMARY KEY CLUSTERED
(
[ModuleResRefVersionID],
[InstanceID]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[t_AreaObject] WITH NOCHECK ADD
CONSTRAINT [PK_t_AreaObject] PRIMARY KEY CLUSTERED
(
[ModuleResRefVersionID],
[InstanceID]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[t_AssociatedResource] WITH NOCHECK ADD
CONSTRAINT [PK_t_AssociatedResource] PRIMARY KEY CLUSTERED
(
[ModuleResRefVersionID],
[ResRefID]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[t_Character] WITH NOCHECK ADD
CONSTRAINT [PK_t_Character] PRIMARY KEY CLUSTERED
(
[ModuleResRefVersionID]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[t_ConversationCinematics] WITH NOCHECK ADD
CONSTRAINT [PK_t_ConversationCinematics] PRIMARY KEY CLUSTERED
(
[ModuleResRefVersionID],
[LineIndex],
[Place]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[t_ConversationTagMap] WITH NOCHECK ADD
CONSTRAINT [PK_t_ConversationTagMap] PRIMARY KEY CLUSTERED
(
[ModuleResRefVersionID],
[LineIndex],
[Type],
[KeyTag]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[t_ConversationTransition] WITH NOCHECK ADD
CONSTRAINT [PK_t_ConversationTransit] PRIMARY KEY CLUSTERED
(
[ModuleResRefVersionID],
[FromIndex],
[ToIndex],
[Order]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[t_Inventory] WITH NOCHECK ADD
CONSTRAINT [PK_t_Inventory] PRIMARY KEY CLUSTERED
(
[ModuleResRefVersionID],
[InstanceID],
[ItemResRefID]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[t_Map] WITH NOCHECK ADD
CONSTRAINT [PK_t_Map] PRIMARY KEY CLUSTERED
(
[ModuleResRefVersionID]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[t_Role] WITH NOCHECK ADD
CONSTRAINT [PK_t_Role] PRIMARY KEY CLUSTERED
(
[ModuleResRefVersionID]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[t_StageObject] WITH NOCHECK ADD
CONSTRAINT [PK_t_StageObject] PRIMARY KEY CLUSTERED
(
[ModuleResRefVersionID],
[InstanceID]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[t_StringLanguageVariantText] WITH NOCHECK ADD
CONSTRAINT [PK_StringLanguageVariantText] PRIMARY KEY CLUSTERED
(
[StringLanguageVariantVersionID],
[StringID]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[t_VOScriptBatchPrint] WITH NOCHECK ADD
CONSTRAINT [PK_VOScriptBatchPrint] PRIMARY KEY CLUSTERED
(
[ID]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[t_VOScriptInstance] WITH NOCHECK ADD
CONSTRAINT [PK_VOScriptInstance] PRIMARY KEY CLUSTERED
(
[ID]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[t_VOScriptInstanceString] WITH NOCHECK ADD
CONSTRAINT [PK_t_VOScriptInstanceString] PRIMARY KEY CLUSTERED
(
[ID]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[t_VOScriptInstanceStringStatus] WITH NOCHECK ADD
CONSTRAINT [PK_t_VOScriptInstanceStringStatus] PRIMARY KEY CLUSTERED
(
[ID]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[t_VOScriptStringRevision] WITH NOCHECK ADD
CONSTRAINT [PK_t_VOScriptStringRevision] PRIMARY KEY CLUSTERED
(
[StringID],
[StringLanguageID],
[StringVariantID]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[t_VOSession] WITH NOCHECK ADD
CONSTRAINT [PK_t_VOSession] PRIMARY KEY CLUSTERED
(
[ID]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[t_CharacterDelta] ADD
CONSTRAINT [DF_t_CharacterDelta_CreatedOn] DEFAULT (getdate()) FOR [CreatedOn],
CONSTRAINT [DF_t_CharacterDelta_CreatedBy] DEFAULT (suser_sname()) FOR [CreatedBy]
GO
ALTER TABLE [dbo].[t_ModuleType] ADD
CONSTRAINT [DF_t_ModuleType_Directory] DEFAULT ('') FOR [Directory],
CONSTRAINT [DF_t_ModuleType_CreatedOn] DEFAULT (getdate()) FOR [CreatedOn],
CONSTRAINT [DF_t_ModuleType_CreatedBy] DEFAULT (suser_sname()) FOR [CreatedBy],
CONSTRAINT [DF_t_ModuleType_LastModifiedOn] DEFAULT (getdate()) FOR [LastModifiedOn],
CONSTRAINT [DF_t_ModuleType_LastModifiedBy] DEFAULT (suser_sname()) FOR [LastModifiedBy]
GO
ALTER TABLE [dbo].[t_ResourceTables] ADD
CONSTRAINT [DF_t_ResourceTables_CreatedOn] DEFAULT (getdate()) FOR [CreatedOn],
CONSTRAINT [DF_t_ResourceTables_CreatedBy] DEFAULT (suser_sname()) FOR [CreatedBy],
CONSTRAINT [DF_t_ResourceTables_LastModifiedOn] DEFAULT (getdate()) FOR [LastModifiedOn],
CONSTRAINT [DF_t_ResourceTables_LastModifiedBy] DEFAULT (suser_sname()) FOR [LastModifiedBy]
GO
ALTER TABLE [dbo].[t_StringExportLabel] ADD
CONSTRAINT [DF_t_StringExportLabel_CreatedOn] DEFAULT (getdate()) FOR [CreatedOn],
CONSTRAINT [DF_t_StringExportLabel_CreatedBy] DEFAULT (suser_sname()) FOR [CreatedBy],
CONSTRAINT [DF_t_StringExportLabel_LastModifiedOn] DEFAULT (getdate()) FOR [LastModifiedOn],
CONSTRAINT [DF_t_StringExportLabel_LastModifiedBy] DEFAULT (suser_sname()) FOR [LastModifiedBy]
GO
ALTER TABLE [dbo].[t_StringImportSession] ADD
CONSTRAINT [DF_t_StringImportSession_ImportedOn] DEFAULT (getdate()) FOR [ImportedOn],
CONSTRAINT [DF_t_StringImportSession_ImportedBy] DEFAULT (suser_sname()) FOR [ImportedBy]
GO
ALTER TABLE [dbo].[t_StringTable] ADD
CONSTRAINT [DF_t_StringTable_CreatedOn] DEFAULT (getdate()) FOR [CreatedOn],
CONSTRAINT [DF_t_StringTable_CreatedBy] DEFAULT (suser_sname()) FOR [CreatedBy],
CONSTRAINT [DF_t_StringTable_LastModifiedOn] DEFAULT (getdate()) FOR [LastModifiedOn],
CONSTRAINT [DF_t_StringTable_LastModifiedBy] DEFAULT (suser_sname()) FOR [LastModifiedBy]
GO
ALTER TABLE [dbo].[t_StringType] ADD
CONSTRAINT [DF_t_StringType_CreatedOn] DEFAULT (getdate()) FOR [CreatedOn],
CONSTRAINT [DF_t_StringType_CreatedBy] DEFAULT (suser_sname()) FOR [CreatedBy],
CONSTRAINT [DF_t_StringType_LastModifiedOn] DEFAULT (getdate()) FOR [LastModifiedOn],
CONSTRAINT [DF_t_StringType_LastModifiedBy] DEFAULT (suser_sname()) FOR [LastModifiedBy],
CONSTRAINT [DF_t_StringType_Exported] DEFAULT (0) FOR [Exported]
GO
ALTER TABLE [dbo].[t_StringVariant] ADD
CONSTRAINT [DF_t_StringVariant_CreatedOn] DEFAULT (getdate()) FOR [CreatedOn],
CONSTRAINT [DF_t_StringVariant_CreatedBy] DEFAULT (suser_sname()) FOR [CreatedBy],
CONSTRAINT [DF_t_StringVariant_LastModifiedOn] DEFAULT (getdate()) FOR [LastModifiedOn],
CONSTRAINT [DF_t_StringVariant_LastModifiedBy] DEFAULT (suser_sname()) FOR [LastModifiedBy]
GO
ALTER TABLE [dbo].[t_VOScriptInstanceManagement] ADD
CONSTRAINT [DF_t_VOScriptInstanceManagement_CreatedOn] DEFAULT (getdate()) FOR [CreatedOn],
CONSTRAINT [DF_t_VOScriptInstanceManagement_CreatedBy] DEFAULT (suser_sname()) FOR [CreatedBy]
GO
CREATE INDEX [IX1_t_VOScriptLineCharacterInternal] ON [dbo].[t_VOScriptLineCharacterInternal]([SPID], [StringID], [CharacterResRefID]) ON [PRIMARY]
GO
ALTER TABLE [dbo].[t_ResourceDefinition] ADD
CONSTRAINT [DF_t_ResourceDefinition_CreatedOn] DEFAULT (getdate()) FOR [CreatedOn],
CONSTRAINT [DF_t_ResourceDefinition_CreatedBy] DEFAULT (suser_sname()) FOR [CreatedBy],
CONSTRAINT [DF_t_ResourceDefinition_LastModifiedOn] DEFAULT (getdate()) FOR [LastModifiedOn],
CONSTRAINT [DF_t_ResourceDefinition_LastModifiedBy] DEFAULT (suser_sname()) FOR [LastModifiedBy]
GO
ALTER TABLE [dbo].[t_ResourceTableRelationship] ADD
CONSTRAINT [DF_t_ResourceTableRelationship_CreatedOn] DEFAULT (getdate()) FOR [CreatedOn],
CONSTRAINT [DF_t_ResourceTableRelationship_CreatedBy] DEFAULT (suser_sname()) FOR [CreatedBy],
CONSTRAINT [DF_t_ResourceTableRelationship_LastModifiedOn] DEFAULT (getdate()) FOR [LastModifiedOn],
CONSTRAINT [DF_t_ResourceTableRelationship_LastModifiedBy] DEFAULT (suser_sname()) FOR [LastModifiedBy]
GO
ALTER TABLE [dbo].[t_String] ADD
CONSTRAINT [DF_t_String_CreatedOn] DEFAULT (getdate()) FOR [CreatedOn],
CONSTRAINT [DF_t_String_CreatedBy] DEFAULT (suser_sname()) FOR [CreatedBy],
CONSTRAINT [DF_t_String_LastModifiedOn] DEFAULT (getdate()) FOR [LastModifiedOn],
CONSTRAINT [DF_t_String_LastModifiedBy] DEFAULT (suser_sname()) FOR [LastModifiedBy]
GO
CREATE INDEX [IX_t_StringExportHistory] ON [dbo].[t_StringExportHistory]([StringID], [Status]) ON [PRIMARY]
GO
CREATE INDEX [IX_t_StringExportHistory2] ON [dbo].[t_StringExportHistory]([StringID], [ModuleResRefVersionID]) ON [PRIMARY]
GO
ALTER TABLE [dbo].[t_StringExportHistoryAdjustmentLog] ADD
CONSTRAINT [DF__t_StringE__Creat__48717679] DEFAULT (getdate()) FOR [CreatedOn],
CONSTRAINT [DF__t_StringE__Creat__49659AB2] DEFAULT (suser_sname()) FOR [CreatedBy]
GO
CREATE INDEX [IX_t_StringExportHistoryAdjustmentLog] ON [dbo].[t_StringExportHistoryAdjustmentLog]([StringExportHistoryID]) ON [PRIMARY]
GO
ALTER TABLE [dbo].[t_Module] ADD
CONSTRAINT [DF_t_Module_Directory] DEFAULT ('') FOR [Directory],
CONSTRAINT [DF_t_Module_StartTag] DEFAULT ('') FOR [StartTag],
CONSTRAINT [DF_t_Module_CreatedOn] DEFAULT (getdate()) FOR [CreatedOn],
CONSTRAINT [DF_t_Module_CreatedBy] DEFAULT (suser_sname()) FOR [CreatedBy],
CONSTRAINT [DF_t_Module_LastModifiedOn] DEFAULT (getdate()) FOR [LastModifiedOn],
CONSTRAINT [DF_t_Module_LastModifiedBy] DEFAULT (suser_sname()) FOR [LastModifiedBy],
CONSTRAINT [DF_t_Module_Variable2da] DEFAULT ('var_module') FOR [Variable2da],
CONSTRAINT [DF_t_Module_IncludeInResBuild] DEFAULT (0) FOR [IncludeInResBuild],
CONSTRAINT [DF_t_Module_RequiresLocalization] DEFAULT (0) FOR [RequiresLocalization],
CONSTRAINT [DF_t_Module_RequiresVO] DEFAULT (0) FOR [RequiresVO],
CONSTRAINT [DF_t_Module_StringIDBegin] DEFAULT ((-1)) FOR [StringIDBegin],
CONSTRAINT [DF_t_Module_StringIDEnd] DEFAULT ((-1)) FOR [StringIDEnd],
CONSTRAINT [DF_t_Module_StringIDLastUsed] DEFAULT ((-1)) FOR [StringIDLastUsed]
GO
ALTER TABLE [dbo].[t_StringSound] ADD
CONSTRAINT [DF_t_StringSound_CreatedOn] DEFAULT (getdate()) FOR [CreatedOn],
CONSTRAINT [DF_t_StringSound_CreatedBy] DEFAULT (suser_sname()) FOR [CreatedBy],
CONSTRAINT [DF_t_StringSound_LastModifiedOn] DEFAULT (getdate()) FOR [LastModifiedOn],
CONSTRAINT [DF_t_StringSound_LastModifiedBy] DEFAULT (suser_sname()) FOR [LastModifiedBy],
CONSTRAINT [IX_t_StringSound] UNIQUE NONCLUSTERED
(
[StringID]
) ON [PRIMARY]
GO
CREATE INDEX [IX_t_StringSound_FK1] ON [dbo].[t_StringSound]([StringID]) ON [PRIMARY]
GO
ALTER TABLE [dbo].[t_ModuleAssociation] ADD
CONSTRAINT [DF_t_ModuleAssociation_CreatedOn] DEFAULT (getdate()) FOR [CreatedOn],
CONSTRAINT [DF_t_ModuleAssociation_CreatedBy] DEFAULT (suser_sname()) FOR [CreatedBy],
CONSTRAINT [DF_t_ModuleAssociation_LastModifiedOn] DEFAULT (getdate()) FOR [LastModifiedOn],
CONSTRAINT [DF_t_ModuleAssociation_LastModifiedBy] DEFAULT (suser_sname()) FOR [LastModifiedBy]
GO
CREATE INDEX [IX_t_ModuleAssociation] ON [dbo].[t_ModuleAssociation]([FullPath]) ON [PRIMARY]
GO
ALTER TABLE [dbo].[t_Area] ADD
CONSTRAINT [DF_t_Area_Comments] DEFAULT ('') FOR [Comments],
CONSTRAINT [DF_t_Area_NoTeleport] DEFAULT (1) FOR [NoTeleport],
CONSTRAINT [DF_t_Area_NonHostile] DEFAULT (1) FOR [NonHostile],
CONSTRAINT [DF_t_Area_AreaMap] DEFAULT ('') FOR [AreaMap],
CONSTRAINT [DF_t_Area_AreaMapWidth] DEFAULT (0) FOR [AreaMapWidth],
CONSTRAINT [DF_t_Area_AreaMapHeight] DEFAULT (0) FOR [AreaMapHeight],
CONSTRAINT [DF_t_Area_AreaLayout] DEFAULT ('') FOR [AreaLayout],
CONSTRAINT [DF_t_Area_NoPartyInPocket] DEFAULT (1) FOR [NoPartyInPocket],
CONSTRAINT [DF_t_Area_Variable2da] DEFAULT ('var_area') FOR [Variable2da],
CONSTRAINT [DF_t_Area_AreaMapNorth] DEFAULT (0) FOR [AreaMapNorth],
CONSTRAINT [DF_t_Area_ReverbPreset] DEFAULT ('') FOR [ReverbPreset],
CONSTRAINT [DF_t_Area_MusicPreset] DEFAULT ('') FOR [MusicPreset]
GO
CREATE INDEX [IX_t_Area_FK1] ON [dbo].[t_Area]([NameStringID]) ON [PRIMARY]
GO
CREATE INDEX [IX_t_Area1] ON [dbo].[t_Area]([AreaListResRefID]) ON [PRIMARY]
GO
ALTER TABLE [dbo].[t_Conversation] ADD
CONSTRAINT [DF_t_Conversation_EndConversationPlotFlag] DEFAULT (0) FOR [EndConversationPlotFlag],
CONSTRAINT [DF_t_Conversation_EndConversationParameter] DEFAULT (0) FOR [EndConversationParameter],
CONSTRAINT [DF_t_Conversation_EndConversationParameterText] DEFAULT ('') FOR [EndConversationParameterText],
CONSTRAINT [DF_t_Conversation_EndConversationResult] DEFAULT (1) FOR [EndConversationResult],
CONSTRAINT [DF_t_Conversation_DefaultNPCSpeaker] DEFAULT ('OWNER') FOR [DefaultNPCSpeaker],
CONSTRAINT [DF_t_Conversation_DefaultNPCListener] DEFAULT ('PLAYER') FOR [DefaultNPCListener],
CONSTRAINT [DF_t_Conversation_DefaultPCListener] DEFAULT ('OWNER') FOR [DefaultPCListener],
CONSTRAINT [DF_t_Conversation_PreviewStageUseFirstMatch] DEFAULT (1) FOR [PreviewStageUseFirstMatch],
CONSTRAINT [DF_t_Conversation_PreviewStagePositionX] DEFAULT (0) FOR [PreviewStagePositionX],
CONSTRAINT [DF_t_Conversation_PreviewStagePositionY] DEFAULT (0) FOR [PreviewStagePositionY],
CONSTRAINT [DF_t_Conversation_PreviewStagePositionZ] DEFAULT (0) FOR [PreviewStagePositionZ],
CONSTRAINT [DF_t_Conversation_PreviewStageOrientationX] DEFAULT (0) FOR [PreviewStageOrientationX],
CONSTRAINT [DF_t_Conversation_PreviewStageOrientationY] DEFAULT (0) FOR [PreviewStageOrientationY],
CONSTRAINT [DF_t_Conversation_PreviewStageOrientationZ] DEFAULT (0) FOR [PreviewStageOrientationZ],
CONSTRAINT [DF_t_Conversation_StageTag] DEFAULT ('') FOR [StageTag],
CONSTRAINT [DF_t_Conversation_AllCameraLocked] DEFAULT (0) FOR [AllCameraLocked],
CONSTRAINT [DF_t_Conversation_AllGesturesLocked] DEFAULT (0) FOR [AllGesturesLocked],
CONSTRAINT [DF_t_Conversation_AllPosesLocked] DEFAULT (0) FOR [AllPosesLocked],
CONSTRAINT [DF_t_Conversation_AllRoboBradLocked] DEFAULT (0) FOR [AllRoboBradLocked],
CONSTRAINT [DF_t_Conversation_StageAtCurrentLocation] DEFAULT (0) FOR [StageAtCurrentLocation],
CONSTRAINT [DF_t_Conversation_AmbientSoundSetType] DEFAULT (0) FOR [AmbientSoundSetType],
CONSTRAINT [DF_t_Conversation_OwnerIsHenchman] DEFAULT (0) FOR [OwnerIsHenchman],
CONSTRAINT [DF_t_Conversation_VOHardTimeRestriction] DEFAULT (0) FOR [VOHardTimeRestriction]
GO
/****** The index created by the following statement is for internal use only. ******/
/****** It is not a real index but exists as statistics only. ******/
if (@@microsoftversion > 0x07000000 )
EXEC ('CREATE STATISTICS [Statistic_DefaultPCListener] ON [dbo].[t_Conversation] ([DefaultPCListener]) ')
GO
ALTER TABLE [dbo].[t_ConversationLine] ADD
CONSTRAINT [DF_t_ConversationLine_IsNPC] DEFAULT (0) FOR [IsPC],
CONSTRAINT [DF_t_ConversationLine_LanguageID] DEFAULT (0) FOR [LanguageID],
CONSTRAINT [DF_t_ConversationLine_ConditionParameter] DEFAULT (0) FOR [ConditionParameter],
CONSTRAINT [DF_t_ConversationLine_ConditionParameterText] DEFAULT ('') FOR [ConditionParameterText],
CONSTRAINT [DF_t_ConversationLine_ActionParameter] DEFAULT (0) FOR [ActionParameter],
CONSTRAINT [DF_t_ConversationLine_ActionParameterText] DEFAULT ('') FOR [ActionParameterText],
CONSTRAINT [DF_t_ConversationLine_Icon] DEFAULT (0) FOR [Icon],
CONSTRAINT [DF_t_ConversationLine_Comment] DEFAULT ('') FOR [Comment],
CONSTRAINT [DF_t_ConversationLine_VoiceOverComment] DEFAULT ('') FOR [VoiceOverComment],
CONSTRAINT [DF_t_ConversationLine_ActionPlotFlag] DEFAULT (0) FOR [ActionPlotFlag],
CONSTRAINT [DF_t_ConversationLine_ActionResult] DEFAULT (1) FOR [ActionResult],
CONSTRAINT [DF_t_ConversationLine_ConditionPlotFlag] DEFAULT (0) FOR [ConditionPlotFlag],
CONSTRAINT [DF_t_ConversationLine_ConditionResult] DEFAULT (1) FOR [ConditionResult],
CONSTRAINT [DF_t_ConversationLine_EditorComment] DEFAULT ('') FOR [EditorComment],
CONSTRAINT [DF_t_ConversationLine_Speaker] DEFAULT ('') FOR [Speaker],
CONSTRAINT [DF_t_ConversationLine_Listener] DEFAULT ('') FOR [Listener],
CONSTRAINT [DF_t_ConversationLine_Visibility] DEFAULT (0) FOR [Visibility],
CONSTRAINT [DF_t_ConversationLine_Ambient] DEFAULT (0) FOR [Ambient],
CONSTRAINT [DF_t_ConversationLine_CameraTag] DEFAULT ('') FOR [CameraTag],
CONSTRAINT [DF_t_ConversationLine_SpeakerAnimation] DEFAULT ('') FOR [SpeakerAnimation],
CONSTRAINT [DF_t_ConversationLine_Emotion] DEFAULT (0) FOR [Emotion],
CONSTRAINT [DF_t_ConversationLine_RoboBradSeed] DEFAULT (0) FOR [RoboBradSeed],
CONSTRAINT [DF_t_ConversationLine_RoboBradSeedOverride] DEFAULT (0) FOR [RoboBradSeedOverride],
CONSTRAINT [DF_t_ConversationLine_RoboBradLocked] DEFAULT (0) FOR [RoboBradLocked],
CONSTRAINT [DF_t_ConversationLine_PreviewStageUseFirstMatch] DEFAULT (1) FOR [PreviewStageUseFirstMatch],
CONSTRAINT [DF_t_ConversationLine_PreviewStagePositionX] DEFAULT (0) FOR [PreviewStagePositionX],
CONSTRAINT [DF_t_ConversationLine_PreviewStagePositionY] DEFAULT (0) FOR [PreviewStagePositionY],
CONSTRAINT [DF_t_ConversationLine_PreviewStagePositionZ] DEFAULT (0) FOR [PreviewStagePositionZ],
CONSTRAINT [DF_t_ConversationLine_PreviewStageOrientationX] DEFAULT (0) FOR [PreviewStageOrientationX],
CONSTRAINT [DF_t_ConversationLine_PreviewStageOrientationY] DEFAULT (0) FOR [PreviewStageOrientationY],
CONSTRAINT [DF_t_ConversationLine_PreviewStageOrientationZ] DEFAULT (0) FOR [PreviewStageOrientationZ],
CONSTRAINT [DF_t_ConversationLine_Skip] DEFAULT (0) FOR [Skip],
CONSTRAINT [DF_t_ConversationLine_FastPath] DEFAULT (0) FOR [FastPath],
CONSTRAINT [DF_t_ConversationLine_StageTag] DEFAULT ('') FOR [StageTag],
CONSTRAINT [DF_t_ConversationLine_AnimationsLocked] DEFAULT (0) FOR [AnimationsLocked],
CONSTRAINT [DF_t_ConversationLine_PlaySoundEvents] DEFAULT (1) FOR [PlaySoundEvents],
CONSTRAINT [DF_t_ConversationLine_CameraLocked] DEFAULT (0) FOR [CameraLocked],
CONSTRAINT [DF_t_ConversationLine_SecondaryCameraTag] DEFAULT ('') FOR [SecondaryCameraTag],
CONSTRAINT [DF_t_ConversationLine_SecondaryCameraDelay] DEFAULT (0) FOR [SecondaryCameraDelay],
CONSTRAINT [DF_t_ConversationLine_UseAnimationDuration] DEFAULT (0) FOR [UseAnimationDuration],
CONSTRAINT [DF_t_ConversationLine_NoVOInGame] DEFAULT (0) FOR [NoVOInGame],
CONSTRAINT [DF_t_ConversationLine_RevertAnimation] DEFAULT (0) FOR [RevertAnimation],
CONSTRAINT [DF_t_ConversationLine_Narration] DEFAULT (0) FOR [Narration],
CONSTRAINT [DF_t_ConversationLine_SlideShowTexture] DEFAULT ('') FOR [SlideShowTexture],
CONSTRAINT [DF_t_ConversationLine_StageAtCurrentLocation] DEFAULT (0) FOR [StageAtCurrentLocation],
CONSTRAINT [CK_t_ConversationLine] CHECK ([Index] >= 0)
GO
CREATE INDEX [IX_t_ConversationLine_FK1] ON [dbo].[t_ConversationLine]([TextStringID]) ON [PRIMARY]
GO
CREATE INDEX [IX_t_ConversationLine_MRRVIDSpeaker] ON [dbo].[t_ConversationLine]([ModuleResRefVersionID], [Speaker]) ON [PRIMARY]
GO
CREATE INDEX [IX_ConvLine_ActionPlotResRefID] ON [dbo].[t_ConversationLine]([ActionPlotResRefID]) ON [PRIMARY]
GO
CREATE INDEX [IX_ConvLine_ActionScriptResRefID] ON [dbo].[t_ConversationLine]([ActionScriptResRefID]) ON [PRIMARY]
GO
CREATE INDEX [IX_ConvLine_ConditionPlotResRefID] ON [dbo].[t_ConversationLine]([ConditionPlotResRefID]) ON [PRIMARY]
GO
CREATE INDEX [IX_ConvLine_ConditionScriptResRefID] ON [dbo].[t_ConversationLine]([ConditionScriptResRefID]) ON [PRIMARY]
GO
CREATE INDEX [IX_ConvLine_StageResRefID] ON [dbo].[t_ConversationLine]([StageResRefID]) ON [PRIMARY]
GO
CREATE INDEX [IX_ConvLine_CameraFunctionalShotResRefID] ON [dbo].[t_ConversationLine]([CameraFunctionalShotResRefID]) ON [PRIMARY]
GO
CREATE INDEX [IX_ConvLine_CustomCutsceneResRefID] ON [dbo].[t_ConversationLine]([CustomCutsceneResRefID]) ON [PRIMARY]
GO
CREATE INDEX [IX_t_ConversationLine_MRRVIDTextStringID] ON [dbo].[t_ConversationLine]([ModuleResRefVersionID], [TextStringID]) ON [PRIMARY]
GO
CREATE INDEX [IX_ConvLine_PreviewAreaResRefID] ON [dbo].[t_ConversationLine]([PreviewAreaResRefID]) ON [PRIMARY]
GO
ALTER TABLE [dbo].[t_Creature] ADD
CONSTRAINT [DF_t_Creature_Tag] DEFAULT ('') FOR [Tag],
CONSTRAINT [DF_t_Creature_Race] DEFAULT ((-1)) FOR [Race],
CONSTRAINT [DF_t_Creature_Appearance] DEFAULT (15) FOR [Appearance],
CONSTRAINT [DF_t_Creature_Gender] DEFAULT (1) FOR [Gender],
CONSTRAINT [DF_t_Creature_Group] DEFAULT (3) FOR [Group],
CONSTRAINT [DF_t_Creature_Selectable] DEFAULT (1) FOR [Selectable],
CONSTRAINT [DF_t_Creature_Head] DEFAULT (1) FOR [Head],
CONSTRAINT [DF_t_Creature_Class] DEFAULT (1) FOR [Class],
CONSTRAINT [DF_t_Creature_Package] DEFAULT (1) FOR [Package],
CONSTRAINT [DF_t_Creature_Comments] DEFAULT ('') FOR [Comments],
CONSTRAINT [DF_t_Creature_Immortal] DEFAULT (0) FOR [Immortal],
CONSTRAINT [DF_t_Creature_Plot] DEFAULT (0) FOR [Plot],
CONSTRAINT [DF_t_Creature_PerceptionRange] DEFAULT (9) FOR [PerceptionRange],
CONSTRAINT [DF_t_Creature_Gold] DEFAULT (0) FOR [Gold],
CONSTRAINT [DF_t_Creature_Autobalance] DEFAULT (1) FOR [Autobalance],
CONSTRAINT [DF_t_Creature_Hair] DEFAULT (1) FOR [Hair],
CONSTRAINT [DF_t_Creature_Eyes] DEFAULT (1) FOR [Eyes],
CONSTRAINT [DF_t_Creature_Variable2da] DEFAULT ('var_creature') FOR [Variable2da],
CONSTRAINT [DF_t_Creature_Beard] DEFAULT (0) FOR [Beard],
CONSTRAINT [DF_t_Creature_SkinTint] DEFAULT (0) FOR [SkinTint],
CONSTRAINT [DF_t_Creature_Tattoo] DEFAULT (0) FOR [Tattoo],
CONSTRAINT [DF_t_Creature_EyeTint] DEFAULT (0) FOR [EyeTint],
CONSTRAINT [DF_t_Creature_HairTint] DEFAULT (0) FOR [HairTint],
CONSTRAINT [DF_t_Creature_HeadMorph] DEFAULT ('') FOR [HeadMorph],
CONSTRAINT [DF_t_Creature_Combatant] DEFAULT (0) FOR [Combatant],
CONSTRAINT [DF_t_Creature_GUIBar] DEFAULT (0) FOR [GUIBar],
CONSTRAINT [DF_t_Creature_BodyTintMask] DEFAULT (0) FOR [BodyTintMask],
CONSTRAINT [DF_t_Creature_TattooTint] DEFAULT (0) FOR [TattooTint],
CONSTRAINT [DF_t_Creature_NoPermanentDeath] DEFAULT (0) FOR [NoPermanentDeath],
CONSTRAINT [DF_t_Creature_BodyTint] DEFAULT (0) FOR [BodyTint],
CONSTRAINT [DF_t_Creature_Team] DEFAULT ((-1)) FOR [Team],
CONSTRAINT [DF_t_Creature_PlotGiver] DEFAULT (0) FOR [PlotGiver],
CONSTRAINT [DF_t_Creature_TreasureCategory] DEFAULT (0) FOR [TreasureCategory],
CONSTRAINT [DF_Creature_PackageType] DEFAULT (0) FOR [PackageType],
CONSTRAINT [DF_Creature_PackageAI] DEFAULT (0) FOR [PackageAI],
CONSTRAINT [DF_t_Creature_MinLevel] DEFAULT (0) FOR [MinLevel],
CONSTRAINT [DF_t_Creature_MaxLevel] DEFAULT (0) FOR [MaxLevel],
CONSTRAINT [DF_t_Creature_ArtFidelity] DEFAULT (2) FOR [ArtFidelity]
GO
CREATE INDEX [IX_t_Creature_FK1] ON [dbo].[t_Creature]([NameStringID]) ON [PRIMARY]
GO
ALTER TABLE [dbo].[t_Cutscene] ADD
CONSTRAINT [DF_t_Cutscene_RunTime] DEFAULT (60000000) FOR [RunTime],
CONSTRAINT [DF_t_Cutscene_PrimaryActor] DEFAULT ((-1)) FOR [PrimaryActor],
CONSTRAINT [DF_t_Cutscene_Animatic] DEFAULT ('') FOR [Animatic],
CONSTRAINT [DF_t_Cutscene_BeforeKeyBasedTracks] DEFAULT (0) FOR [BeforeKeyBasedTracks],
CONSTRAINT [DF_t_Cutscene_ShowDynamics] DEFAULT (0) FOR [ShowDynamics],
CONSTRAINT [DF_t_Cutscene_PlaySoundEvents] DEFAULT (0) FOR [PlaySoundEvents],
CONSTRAINT [DF_t_Cutscene_UseMasterForLOD] DEFAULT (0) FOR [UseMasterForLOD],
CONSTRAINT [DF_t_Cutscene_AreaPosOffsetX] DEFAULT (0) FOR [AreaPosOffsetX],
CONSTRAINT [DF_t_Cutscene_AreaPosOffsetY] DEFAULT (0) FOR [AreaPosOffsetY],
CONSTRAINT [DF_t_Cutscene_AreaPosOffsetZ] DEFAULT (0) FOR [AreaPosOffsetZ],
CONSTRAINT [DF_t_Cutscene_AreaOriOffsetX] DEFAULT (0) FOR [AreaOriOffsetX],
CONSTRAINT [DF_t_Cutscene_AreaOriOffsetY] DEFAULT (0) FOR [AreaOriOffsetY],
CONSTRAINT [DF_t_Cutscene_AreaOriOffsetZ] DEFAULT (0) FOR [AreaOriOffsetZ],
CONSTRAINT [DF_t_Cutscene_EnableLevelFBEs] DEFAULT (1) FOR [EnableLevelFBEs],
CONSTRAINT [DF_t_Cutscene_FPS] DEFAULT (30) FOR [FPS],
CONSTRAINT [DF_t_Cutscene_BeforeFixingGADOffsetBaking] DEFAULT (0) FOR [BeforeFixingGADOffsetBaking],
CONSTRAINT [DF_t_Cutscene_PlayUntilVOCompletes] DEFAULT (0) FOR [PlayUntilVOCompletes],
CONSTRAINT [DF_t_Cutscene_AreaRequired] DEFAULT (1) FOR [AreaRequired],
CONSTRAINT [DF_t_Cutscene_ShadowRadius] DEFAULT (0) FOR [ShadowRadius],
CONSTRAINT [DF_t_Cutscene_LightOcclusion] DEFAULT (0) FOR [LightOcclusion]
GO
ALTER TABLE [dbo].[t_CutsceneAction] ADD
CONSTRAINT [DF_t_CutsceneAction_int1] DEFAULT (0) FOR [int1],
CONSTRAINT [DF_t_CutsceneAction_int2] DEFAULT (0) FOR [int2],
CONSTRAINT [DF_t_CutsceneAction_byte1] DEFAULT (0) FOR [byte1],
CONSTRAINT [DF_t_CutsceneAction_real1] DEFAULT (0) FOR [real1],
CONSTRAINT [DF_t_CutsceneAction_real2] DEFAULT (0) FOR [real2],
CONSTRAINT [DF_t_CutsceneAction_real3] DEFAULT (0) FOR [real3],
CONSTRAINT [DF_t_CutsceneAction_real4] DEFAULT (0) FOR [real4],
CONSTRAINT [DF_t_CutsceneAction_real5] DEFAULT (0) FOR [real5],
CONSTRAINT [DF_t_CutsceneAction_real6] DEFAULT (0) FOR [real6],
CONSTRAINT [DF_t_CutsceneAction_bit1] DEFAULT (0) FOR [bit1],
CONSTRAINT [DF_t_CutsceneAction_bit2] DEFAULT (0) FOR [bit2],
CONSTRAINT [DF_t_CutsceneAction_varchar1] DEFAULT ('') FOR [varchar1],
CONSTRAINT [DF_t_CutsceneAction_varchar2] DEFAULT ('') FOR [varchar2],
CONSTRAINT [DF_t_CutsceneAction_int3] DEFAULT (0) FOR [int3],
CONSTRAINT [DF_t_CutsceneAction_int4] DEFAULT (0) FOR [int4],
CONSTRAINT [DF_t_CutsceneAction_int5] DEFAULT (0) FOR [int5],
CONSTRAINT [DF_t_CutsceneAction_LoopingEndTime] DEFAULT (0) FOR [LoopingEndTime],
CONSTRAINT [DF_t_CutsceneAction_varchar3] DEFAULT ('') FOR [varchar3],
CONSTRAINT [DF_t_CutsceneAction_bit3] DEFAULT (0) FOR [bit3],
CONSTRAINT [DF_t_CutsceneAction_GroupID] DEFAULT (0) FOR [GroupID],
CONSTRAINT [DF_t_CutsceneAction_Infinite] DEFAULT (0) FOR [Infinite],
CONSTRAINT [DF_t_CutsceneAction_bit4] DEFAULT (0) FOR [bit4],
CONSTRAINT [DF_t_CutsceneAction_bit5] DEFAULT (0) FOR [bit5]
GO
CREATE INDEX [IX_CutsceneAction_ResRefID1] ON [dbo].[t_CutsceneAction]([ResRefID1]) ON [PRIMARY]
GO
CREATE INDEX [IX_t_CutsceneAction_MRRVIDTypeInt1] ON [dbo].[t_CutsceneAction]([ModuleResRefVersionID], [Type], [int1]) ON [PRIMARY]
GO
ALTER TABLE [dbo].[t_CutsceneObject] ADD
CONSTRAINT [DF_t_CutsceneObject_Model] DEFAULT ('') FOR [Model],
CONSTRAINT [DF_t_CutsceneObject_WalkmeshInitial] DEFAULT (1) FOR [WalkmeshInitial],
CONSTRAINT [DF_t_CutsceneObject_GlobalActor] DEFAULT (0) FOR [GlobalActor],
CONSTRAINT [DF_t_CutsceneObject_PositionX] DEFAULT (0) FOR [PositionX],
CONSTRAINT [DF_t_CutsceneObject_PositionY] DEFAULT (0) FOR [PositionY],
CONSTRAINT [DF_t_CutsceneObject_PositionZ] DEFAULT (0) FOR [PositionZ],
CONSTRAINT [DF_t_CutsceneObject_OrientationX] DEFAULT (0) FOR [OrientationX],
CONSTRAINT [DF_t_CutsceneObject_OrientationY] DEFAULT (0) FOR [OrientationY],
CONSTRAINT [DF_t_CutsceneObject_OrientationZ] DEFAULT (0) FOR [OrientationZ],
CONSTRAINT [DF_t_CutsceneObject_Tag] DEFAULT ('') FOR [Name],
CONSTRAINT [DF_t_CutsceneObject_real1] DEFAULT (0) FOR [real1],
CONSTRAINT [DF_t_CutsceneObject_real2] DEFAULT (0) FOR [real2],
CONSTRAINT [DF_t_CutsceneObject_real3] DEFAULT (0) FOR [real3],
CONSTRAINT [DF_t_CutsceneObject_real4] DEFAULT (0) FOR [real4],
CONSTRAINT [DF_t_CutsceneObject_int1] DEFAULT (0) FOR [int1],
CONSTRAINT [DF_t_CutsceneObject_int2] DEFAULT (0) FOR [int2],
CONSTRAINT [DF_t_CutsceneObject_AttachedToActorID] DEFAULT ((-1)) FOR [AttachedToActorID],
CONSTRAINT [DF_t_CutsceneObject_real5] DEFAULT (0) FOR [real5],
CONSTRAINT [DF_t_CutsceneObject_UsePose] DEFAULT (0) FOR [UsePose],
CONSTRAINT [DF_t_CutsceneObject_Pose] DEFAULT ((-1)) FOR [Pose],
CONSTRAINT [DF_t_CutsceneObject_PoseSpeed] DEFAULT (1) FOR [PoseSpeed],
CONSTRAINT [DF_t_CutsceneObject_OriginX] DEFAULT (0) FOR [OriginX],
CONSTRAINT [DF_t_CutsceneObject_OriginY] DEFAULT (0) FOR [OriginY],
CONSTRAINT [DF_t_CutsceneObject_OriginZ] DEFAULT (0) FOR [OriginZ],
CONSTRAINT [DF_t_CutsceneObject_OriginYaw] DEFAULT (0) FOR [OriginYaw],
CONSTRAINT [DF_t_CutsceneObject_OriginPitch] DEFAULT (0) FOR [OriginPitch],
CONSTRAINT [DF_t_CutsceneObject_OriginRoll] DEFAULT (0) FOR [OriginRoll],
CONSTRAINT [DF_t_CutsceneObject_MappingTag] DEFAULT ('') FOR [MappingTag],
CONSTRAINT [DF_t_CutsceneObject_TransitionDelay] DEFAULT (0) FOR [TransitionDelay],
CONSTRAINT [DF_t_CutsceneObject_PreviousPose] DEFAULT ((-1)) FOR [PreviousPose],
CONSTRAINT [DF_t_CutsceneObject_MappingRequired] DEFAULT (0) FOR [MappingRequired],
CONSTRAINT [DF_t_CutsceneObject_ExportResRef] DEFAULT (1) FOR [ExportResRef],
CONSTRAINT [DF_t_CutsceneObject_TargetActorID] DEFAULT ((-1)) FOR [TargetActorID],
CONSTRAINT [DF_t_CutsceneObject_LOD] DEFAULT (0) FOR [LOD],
CONSTRAINT [DF_t_CutsceneObject_ModelScale] DEFAULT (1) FOR [ModelScale]
GO
CREATE INDEX [IX_t_CutsceneObject] ON [dbo].[t_CutsceneObject]([ResRefID]) ON [PRIMARY]
GO
ALTER TABLE [dbo].[t_Item] ADD
CONSTRAINT [DF_t_Item_BaseItemType] DEFAULT (2) FOR [BaseItemType],
CONSTRAINT [DF_t_Item_Appearance] DEFAULT (2) FOR [Appearance],
CONSTRAINT [DF_t_Item_MaterialType] DEFAULT ((-1)) FOR [MaterialType],
CONSTRAINT [DF_t_Item_Tag] DEFAULT ('') FOR [Tag],
CONSTRAINT [DF_t_Item_Plot] DEFAULT (0) FOR [Plot],
CONSTRAINT [DF_t_Item_CostOverride] DEFAULT (0) FOR [CostOverride],
CONSTRAINT [DF_t_Item_Comments] DEFAULT ('') FOR [Comments],
CONSTRAINT [DF_t_Item_Variable2da] DEFAULT ('var_item') FOR [Variable2da],
CONSTRAINT [DF_t_Item_Heraldry] DEFAULT (0) FOR [Heraldry],
CONSTRAINT [DF_t_Item_TintOverride] DEFAULT (0) FOR [TintOverride],
CONSTRAINT [DF_t_Item_Damaged] DEFAULT (0) FOR [Damaged],
CONSTRAINT [DF_t_Item_OnHitEffectID] DEFAULT (0) FOR [OnHitEffectID],
CONSTRAINT [DF_t_Item_OnHitPower] DEFAULT (0) FOR [OnHitPower],
CONSTRAINT [DF_t_Item_RecipeType] DEFAULT (0) FOR [RecipeType],
CONSTRAINT [DF_t_Item_Unique] DEFAULT (0) FOR [Unique],
CONSTRAINT [DF_t_Item_MaterialProgression] DEFAULT ((-1)) FOR [MaterialProgression],
CONSTRAINT [DF_t_Item_BodyTintMask] DEFAULT (0) FOR [BodyTintMask],
CONSTRAINT [DF_t_Item_BodyTint] DEFAULT (0) FOR [BodyTint],
CONSTRAINT [DF_t_Item_InventorySubgroup] DEFAULT (0) FOR [InventorySubgroup]
GO
CREATE INDEX [IX_t_Item_1] ON [dbo].[t_Item]([NameStringID]) ON [PRIMARY]
GO
CREATE INDEX [IX_t_Item_2] ON [dbo].[t_Item]([DescriptionStringID]) ON [PRIMARY]
GO
ALTER TABLE [dbo].[t_Merchant] ADD
CONSTRAINT [DF_t_Merchant_Tag] DEFAULT ('') FOR [Tag],
CONSTRAINT [DF_t_Merchant_Comments] DEFAULT ('') FOR [Comments],
CONSTRAINT [DF_t_Merchant_SellMarkUp] DEFAULT (0) FOR [SellMarkUp],
CONSTRAINT [DF_t_Merchant_BuyMarkDown] DEFAULT (0) FOR [BuyMarkDown],
CONSTRAINT [DF_t_Merchant_BuyRestricted] DEFAULT (0) FOR [BuyRestricted],
CONSTRAINT [DF_t_Merchant_Variable2da] DEFAULT ('var_merchant') FOR [Variable2da]
GO
ALTER TABLE [dbo].[t_ModuleResRef] ADD
CONSTRAINT [DF_t_ModuleResRef_CreatedOn] DEFAULT (getdate()) FOR [CreatedOn],
CONSTRAINT [DF_t_ModuleResRef_CreatedBy] DEFAULT (suser_sname()) FOR [CreatedBy],
CONSTRAINT [DF_t_ModuleResRef_LastModifiedOn] DEFAULT (getdate()) FOR [LastModifiedOn],
CONSTRAINT [DF_t_ModuleResRef_LastModifiedBy] DEFAULT (suser_sname()) FOR [LastModifiedBy]
GO
ALTER TABLE [dbo].[t_ModuleResRefVersion] ADD
CONSTRAINT [DF_t_ModuleResRefVersion_FolderName] DEFAULT ('') FOR [Folder],
CONSTRAINT [DF_t_ModuleResRefVersion_Date] DEFAULT (getdate()) FOR [Date],
CONSTRAINT [DF_t_ModuleResRefVersion_UserName] DEFAULT (suser_sname()) FOR [UserName],
CONSTRAINT [DF_t_ModuleResRefVersion_Status] DEFAULT ('C') FOR [Status],
CONSTRAINT [DF_t_ModuleResRefVersion_State] DEFAULT (0) FOR [State],
CONSTRAINT [CK_t_ModuleResRefVersion_Status] CHECK ([Status] = 'C' or ([Status] = 'H' or [Status] = 'S'))
GO
CREATE INDEX [IX_t_ModuleResRefVersion] ON [dbo].[t_ModuleResRefVersion]([Name], [Status], [ModuleID], [ResRefID]) ON [PRIMARY]
GO
CREATE INDEX [IX2_t_ModuleResRefVersion] ON [dbo].[t_ModuleResRefVersion]([ModuleID], [ResRefID], [Status], [Date]) ON [PRIMARY]
GO
CREATE INDEX [IX3_t_ModuleResRefVersion] ON [dbo].[t_ModuleResRefVersion]([ModuleID], [ResRefID], [OwnerModuleID], [Status], [Date]) ON [PRIMARY]
GO
CREATE INDEX [IX4_t_ModuleResRefVersion] ON [dbo].[t_ModuleResRefVersion]([ModuleID], [ResRefID], [Status], [Date], [OwnerModuleID]) ON [PRIMARY]
GO
ALTER TABLE [dbo].[t_Placeable] ADD
CONSTRAINT [DF_t_Placeable_Tag] DEFAULT ('') FOR [Tag],
CONSTRAINT [DF_t_Placeable_Group] DEFAULT (0) FOR [Group],
CONSTRAINT [DF_t_Placeable_Comments] DEFAULT ('') FOR [Comments],
CONSTRAINT [DF_t_Placeable_Appearance] DEFAULT (1) FOR [Appearance],
CONSTRAINT [DF_t_Placeable_InitialAnimation] DEFAULT (0) FOR [InitialAnimation],
CONSTRAINT [DF_t_Placeable_Health] DEFAULT (1) FOR [Health],
CONSTRAINT [DF_t_Placeable_Indestructible] DEFAULT (0) FOR [Indestructible],
CONSTRAINT [DF_t_Placeable_PickLockLevel] DEFAULT (1) FOR [PickLockLevel],
CONSTRAINT [DF_t_Placeable_KeyTag] DEFAULT ('') FOR [KeyTag],
CONSTRAINT [DF_t_Placeable_AutoRemoveKey] DEFAULT (0) FOR [AutoRemoveKey],
CONSTRAINT [DF_t_Placeable_TrapDetectionDifficulty] DEFAULT (0) FOR [TrapDetectionDifficulty],
CONSTRAINT [DF_t_Placeable_TrapDisarmDifficulty] DEFAULT (0) FOR [TrapDisarmDifficulty],
CONSTRAINT [DF_t_Placeable_KeyRequired] DEFAULT (0) FOR [KeyRequired],
CONSTRAINT [DF_t_Placeable_Useable] DEFAULT (1) FOR [Useable],
CONSTRAINT [DF_t_Placeable_Plot] DEFAULT (0) FOR [Plot],
CONSTRAINT [DF_t_Placeable_MaxHealth] DEFAULT (0) FOR [MaxHealth],
CONSTRAINT [DF_t_Placeable_Variable2da] DEFAULT ('var_placeable') FOR [Variable2da],
CONSTRAINT [DF_t_Placeable_Rank] DEFAULT (0) FOR [Rank],
CONSTRAINT [DF_t_Placeable_TreasureCategory] DEFAULT (0) FOR [TreasureCategory],
CONSTRAINT [DF_t_Placeable_Team] DEFAULT ((-1)) FOR [Team]
GO
CREATE INDEX [IX_t_Placeable_FK1] ON [dbo].[t_Placeable]([NameStringID]) ON [PRIMARY]
GO
ALTER TABLE [dbo].[t_Plot] ADD
CONSTRAINT [DF_t_Plot_Priority] DEFAULT (1) FOR [Priority],
CONSTRAINT [DF_t_Plot_GUID] DEFAULT (newid()) FOR [GUID],
CONSTRAINT [DF_t_Plot_JournalImage] DEFAULT ('') FOR [JournalImage],
CONSTRAINT [DF_t_Plot_EntryType] DEFAULT (1) FOR [EntryType],
CONSTRAINT [DF_t_Plot_AllowPausing] DEFAULT (0) FOR [AllowPausing]
GO
ALTER TABLE [dbo].[t_PlotStatus] ADD
CONSTRAINT [DF_t_PlotStatus_Name] DEFAULT ('') FOR [Name],
CONSTRAINT [DF_t_PlotStatus_RewardID] DEFAULT (0) FOR [RewardID],
CONSTRAINT [DF_t_PlotStatus_Comment] DEFAULT ('') FOR [Comment],
CONSTRAINT [DF_t_PlotStatus_AreaLocationTag] DEFAULT ('') FOR [AreaLocationTag]
GO
ALTER TABLE [dbo].[t_Script] ADD
CONSTRAINT [DF_t_Script_Text] DEFAULT ('') FOR [Text]
GO
CREATE INDEX [IX_ScriptReference_ResRefID] ON [dbo].[t_Script_Reference]([ReferencedResRefID]) ON [PRIMARY]
GO
ALTER TABLE [dbo].[t_Stage] ADD
CONSTRAINT [DF_t_Stage_Comment] DEFAULT ('') FOR [Comment],
CONSTRAINT [DF_t_Stage_Tag] DEFAULT ('') FOR [Tag],
CONSTRAINT [DF_t_Stage_PositionX] DEFAULT (0) FOR [PositionX],
CONSTRAINT [DF_t_Stage_PositionY] DEFAULT (0) FOR [PositionY],
CONSTRAINT [DF_t_Stage_PositionZ] DEFAULT (0) FOR [PositionZ],
CONSTRAINT [DF_t_Stage_Yaw] DEFAULT (0) FOR [Yaw]
GO
ALTER TABLE [dbo].[t_StringLanguage] ADD
CONSTRAINT [DF_t_StringLanguage_CreatedOn] DEFAULT (getdate()) FOR [CreatedOn],
CONSTRAINT [DF_t_StringLanguage_CreatedBy] DEFAULT (suser_sname()) FOR [CreatedBy],
CONSTRAINT [DF_t_StringLanguage_LastModifiedOn] DEFAULT (getdate()) FOR [LastModifiedOn],
CONSTRAINT [DF_t_StringLanguage_LastModifiedBy] DEFAULT (suser_sname()) FOR [LastModifiedBy]
GO
ALTER TABLE [dbo].[t_StringLanguageVariant] ADD
CONSTRAINT [DF_t_StringLanguageVariant_CreatedOn] DEFAULT (getdate()) FOR [CreatedOn],
CONSTRAINT [DF_t_StringLanguageVariant_CreatedBy] DEFAULT (suser_sname()) FOR [CreatedBy],
CONSTRAINT [DF_t_StringLanguageVariant_LastModifiedOn] DEFAULT (getdate()) FOR [LastModifiedOn],
CONSTRAINT [DF_t_StringLanguageVariant_LastModifiedBy] DEFAULT (suser_sname()) FOR [LastModifiedBy],
CONSTRAINT [IX_t_StringLanguageVariant] UNIQUE NONCLUSTERED
(
[StringLanguageID],
[StringVariantID]
) ON [PRIMARY]
GO
CREATE INDEX [IX_t_StringLanguageVariant_FK2] ON [dbo].[t_StringLanguageVariant]([StringVariantID]) ON [PRIMARY]
GO
CREATE INDEX [IX1_t_StringLanguageVariantVersion] ON [dbo].[t_StringLanguageVariantVersion]([StringImportSessionID]) ON [PRIMARY]
GO
CREATE INDEX [IX2_t_StringLanguageVariantVersion] ON [dbo].[t_StringLanguageVariantVersion]([StringLanguageVariantID]) ON [PRIMARY]
GO
CREATE INDEX [IX3_t_StringLanguageVariantVersion] ON [dbo].[t_StringLanguageVariantVersion]([Status]) ON [PRIMARY]
GO
ALTER TABLE [dbo].[t_StringText] ADD
CONSTRAINT [DF_t_StringText_CreatedOn] DEFAULT (getdate()) FOR [CreatedOn],
CONSTRAINT [DF_t_StringText_CreatedBy] DEFAULT (suser_sname()) FOR [CreatedBy],
CONSTRAINT [DF_t_StringText_LastMajorUpdateOn] DEFAULT (getdate()) FOR [LastMajorUpdateOn],
CONSTRAINT [DF_t_StringText_LastMajorUpdateBy] DEFAULT (suser_sname()) FOR [LastMajorUpdateBy],
CONSTRAINT [DF_t_StringText_LastMinorUpdateOn] DEFAULT (getdate()) FOR [LastMinorUpdateOn],
CONSTRAINT [DF_t_StringText_LastMinorUpdateBy] DEFAULT (suser_sname()) FOR [LastMinorUpdateBy],
CONSTRAINT [DF_t_StringText_MinorUpdateCount] DEFAULT (0) FOR [MinorUpdateCount],
CONSTRAINT [DF_t_StringText_WordCount] DEFAULT (0) FOR [WordCount],
CONSTRAINT [DF_t_StringText_StringIsCopy] DEFAULT (0) FOR [StringIsCopy],
CONSTRAINT [DF_t_StringText_LastModifiedOn] DEFAULT (getdate()) FOR [LastModifiedOn],
CONSTRAINT [DF_t_StringText_LastModifiedBy] DEFAULT (suser_sname()) FOR [LastModifiedBy],
CONSTRAINT [DF_t_StringText_VORequestOn] DEFAULT (getdate()) FOR [VORequestOn],
CONSTRAINT [DF_t_StringText_ReRecord] DEFAULT (0) FOR [ReRecord]
GO
CREATE INDEX [IX_t_StringText_FK1] ON [dbo].[t_StringText]([StringID], [ModuleResRefVersionID], [WordCount], [VORequestOn]) ON [PRIMARY]
GO
CREATE INDEX [IX_t_StringText_FK2] ON [dbo].[t_StringText]([StringLanguageVariantID]) ON [PRIMARY]
GO
CREATE INDEX [IX_t_StringText] ON [dbo].[t_StringText]([ModuleResRefVersionID]) ON [PRIMARY]
GO
CREATE INDEX [IX_t_StringText_TextAudit] ON [dbo].[t_StringText]([StringID], [ModuleResRefVersionID], [LastMinorUpdateOn], [LastMajorUpdateOn]) ON [PRIMARY]
GO
CREATE INDEX [IX_t_StringVersion_StringIDMRRVIDStringTypeID] ON [dbo].[t_StringVersion]([StringID], [ModuleResRefVersionID], [StringTypeID]) ON [PRIMARY]
GO
CREATE INDEX [IX_t_StringVersion_MRRVIDStringIDStringTypeID] ON [dbo].[t_StringVersion]([ModuleResRefVersionID], [StringID], [StringTypeID]) WITH FILLFACTOR = 90 ON [PRIMARY]
GO
ALTER TABLE [dbo].[t_Trigger] ADD
CONSTRAINT [DF_t_Trigger_Tag] DEFAULT ('') FOR [Tag],
CONSTRAINT [DF_t_Trigger_Group] DEFAULT (0) FOR [Group],
CONSTRAINT [DF_t_Trigger_Comments] DEFAULT ('') FOR [Comments],
CONSTRAINT [DF_t_Trigger_LinkedTo] DEFAULT ('') FOR [LinkedTo],
CONSTRAINT [DF_t_Trigger_Variable2da] DEFAULT ('var_trigger') FOR [Variable2da]
GO
ALTER TABLE [dbo].[t_VOScript] ADD
CONSTRAINT [DF_t_VOScript_PlayerScript] DEFAULT (0) FOR [PlayerScript],
CONSTRAINT [DF_t_VOScript_IsActive] DEFAULT (1) FOR [IsActive]
GO
CREATE INDEX [IX_t_VOScript_Resource] ON [dbo].[t_VOScript]([ResourceModuleID], [ResourceResRefID]) ON [PRIMARY]
GO
CREATE INDEX [IX_t_VOScript_Character] ON [dbo].[t_VOScript]([CharacterModuleID], [CharacterResRefID]) ON [PRIMARY]
GO
ALTER TABLE [dbo].[t_AreaAudioVolume] ADD
CONSTRAINT [DF_t_AreaAudioVolume_PositionX] DEFAULT (0) FOR [PositionX],
CONSTRAINT [DF_t_AreaAudioVolume_PositionY] DEFAULT (0) FOR [PositionY],
CONSTRAINT [DF_t_AreaAudioVolume_PositionZ] DEFAULT (0) FOR [PositionZ],
CONSTRAINT [DF_t_AreaAudioVolume_OrientationX] DEFAULT (0) FOR [OrientationX],
CONSTRAINT [DF_t_AreaAudioVolume_OrientationY] DEFAULT (0) FOR [OrientationY],
CONSTRAINT [DF_t_AreaAudioVolume_OrientationZ] DEFAULT (0) FOR [OrientationZ],
CONSTRAINT [DF_t_AreaAudioVolume_Tag] DEFAULT ('') FOR [Tag],
CONSTRAINT [DF_t_AreaAudioVolume_AudioVolumeName] DEFAULT ('') FOR [AudioVolumeName],
CONSTRAINT [DF_t_AreaAudioVolume_Comments] DEFAULT ('') FOR [Comments],
CONSTRAINT [DF_t_AreaAudioVolume_ReverbPreset] DEFAULT ('') FOR [ReverbPreset],
CONSTRAINT [DF_t_AreaAudioVolume_GUID] DEFAULT ('{00000000-0000-0000-0000-000000000000}') FOR [GUID]
GO
ALTER TABLE [dbo].[t_AreaAudioVolumeGeometry] ADD
CONSTRAINT [DF_t_AreaAudioVolumeGeometry_VertexX] DEFAULT (0) FOR [VertexX],
CONSTRAINT [DF_t_AreaAudioVolumeGeometry_VertexY] DEFAULT (0) FOR [VertexY],
CONSTRAINT [DF_t_AreaAudioVolumeGeometry_VertexZ] DEFAULT (0) FOR [VertexZ]
GO
ALTER TABLE [dbo].[t_AreaAudioVolumeSound] ADD
CONSTRAINT [DF_t_AreaAudioVolumeSound_Active] DEFAULT (1) FOR [Active],
CONSTRAINT [DF_t_AreaAudioVolumeSound_Comments] DEFAULT ('') FOR [Comments],
CONSTRAINT [DF_t_AreaAudioVolumeSound_PositionX] DEFAULT (0) FOR [PositionX],
CONSTRAINT [DF_t_AreaAudioVolumeSound_PositionY] DEFAULT (0) FOR [PositionY],
CONSTRAINT [DF_t_AreaAudioVolumeSound_PositionZ] DEFAULT (0) FOR [PositionZ],
CONSTRAINT [DF_t_AreaAudioVolumeSound_OrientationX] DEFAULT (0) FOR [OrientationX],
CONSTRAINT [DF_t_AreaAudioVolumeSound_OrientationY] DEFAULT (0) FOR [OrientationY],
CONSTRAINT [DF_t_AreaAudioVolumeSound_OrientationZ] DEFAULT (0) FOR [OrientationZ],
CONSTRAINT [DF_t_AreaAudioVolumeSound_Tag] DEFAULT ('') FOR [Tag],
CONSTRAINT [DF_t_AreaAudioVolumeSound_SoundName] DEFAULT ('') FOR [SoundName],
CONSTRAINT [DF_t_AreaAudioVolumeSound_Volume] DEFAULT (0) FOR [Volume],
CONSTRAINT [DF_t_AreaAudioVolumeSound_Pitch] DEFAULT (0) FOR [Pitch],
CONSTRAINT [DF_t_AreaAudioVolumeSound_FadeIn] DEFAULT (0) FOR [FadeIn],
CONSTRAINT [DF_t_AreaAudioVolumeSound_FadeOut] DEFAULT (0) FOR [FadeOut],
CONSTRAINT [DF_t_AreaAudioVolumeSound_MaxRangeMult] DEFAULT (0) FOR [MaxRangeMult],
CONSTRAINT [DF_t_AreaAudioVolumeSound_ConeInside] DEFAULT (0) FOR [ConeInside],
CONSTRAINT [DF_t_AreaAudioVolumeSound_ConeOutside] DEFAULT (0) FOR [ConeOutside],
CONSTRAINT [DF_t_AreaAudioVolumeSound_ConeOutsideVolume] DEFAULT (0) FOR [ConeOutsideVolume],
CONSTRAINT [DF_t_AreaAudioVolumeSound_Priority] DEFAULT (0) FOR [Priority],
CONSTRAINT [DF_t_AreaAudioVolumeSound_Occludable] DEFAULT (1) FOR [Occludable]
GO
ALTER TABLE [dbo].[t_AreaMusicVolumeGeometry] ADD
CONSTRAINT [DF_t_AreaMusicVolumeGeometry_VertexX] DEFAULT (0) FOR [VertexX],
CONSTRAINT [DF_t_AreaMusicVolumeGeometry_VertexY] DEFAULT (0) FOR [VertexY],
CONSTRAINT [DF_t_AreaMusicVolumeGeometry_VertexZ] DEFAULT (0) FOR [VertexZ]
GO
ALTER TABLE [dbo].[t_AreaObjectGeometry] ADD
CONSTRAINT [DF_t_AreaObjectGeometry_VertexX] DEFAULT (0) FOR [VertexX],
CONSTRAINT [DF_t_AreaObjectGeometry_VertexY] DEFAULT (0) FOR [VertexY],
CONSTRAINT [DF_t_AreaObjectGeometry_VertexZ] DEFAULT (0) FOR [VertexZ]
GO
ALTER TABLE [dbo].[t_AreaReverbVolume] ADD
CONSTRAINT [DF_t_AreaReverbVolume_PositionX] DEFAULT (0) FOR [PositionX],
CONSTRAINT [DF_t_AreaReverbVolume_PositionY] DEFAULT (0) FOR [PositionY],
CONSTRAINT [DF_t_AreaReverbVolume_PositionZ] DEFAULT (0) FOR [PositionZ],
CONSTRAINT [DF_t_AreaReverbVolume_OrientationX] DEFAULT (0) FOR [OrientationX],
CONSTRAINT [DF_t_AreaReverbVolume_OrientationY] DEFAULT (0) FOR [OrientationY],
CONSTRAINT [DF_t_AreaReverbVolume_OrientationZ] DEFAULT (0) FOR [OrientationZ],
CONSTRAINT [DF_t_AreaReverbVolume_Tag] DEFAULT ('') FOR [Tag],
CONSTRAINT [DF_t_AreaReverbVolume_ReverbVolumeName] DEFAULT ('') FOR [ReverbVolumeName],
CONSTRAINT [DF_t_AreaReverbVolume_ReverbPreset] DEFAULT ('') FOR [ReverbPreset],
CONSTRAINT [DF_t_AreaReverbVolume_Comments] DEFAULT ('') FOR [Comments],
CONSTRAINT [DF_t_AreaReverbVolume_Priority] DEFAULT (0) FOR [Priority],
CONSTRAINT [DF_t_AreaReverbVolume_GUID] DEFAULT ('{00000000-0000-0000-0000-000000000000}') FOR [GUID]
GO
ALTER TABLE [dbo].[t_AreaReverbVolumeGeometry] ADD
CONSTRAINT [DF_t_AreaReverbVolumeGeometry_VertexX] DEFAULT (0) FOR [VertexX],
CONSTRAINT [DF_t_AreaReverbVolumeGeometry_VertexY] DEFAULT (0) FOR [VertexY],
CONSTRAINT [DF_t_AreaReverbVolumeGeometry_VertexZ] DEFAULT (0) FOR [VertexZ]
GO
ALTER TABLE [dbo].[t_AreaSound] ADD
CONSTRAINT [DF_t_AreaSound_Active] DEFAULT (1) FOR [Active],
CONSTRAINT [DF_t_AreaSound_Comments] DEFAULT ('') FOR [Comments],
CONSTRAINT [DF_t_AreaSound_PositionX] DEFAULT (0) FOR [PositionX],
CONSTRAINT [DF_t_AreaSound_PositionY] DEFAULT (0) FOR [PositionY],
CONSTRAINT [DF_t_AreaSound_PositionZ] DEFAULT (0) FOR [PositionZ],
CONSTRAINT [DF_t_AreaSound_OrientationX] DEFAULT (0) FOR [OrientationX],
CONSTRAINT [DF_t_AreaSound_OrientationY] DEFAULT (0) FOR [OrientationY],
CONSTRAINT [DF_t_AreaSound_OrientationZ] DEFAULT (0) FOR [OrientationZ],
CONSTRAINT [DF_t_AreaSound_Tag] DEFAULT ('') FOR [Tag],
CONSTRAINT [DF_t_AreaSound_SoundName] DEFAULT ('') FOR [SoundName],
CONSTRAINT [DF_t_AreaSound_Volume] DEFAULT (0) FOR [Volume],
CONSTRAINT [DF_t_AreaSound_Pitch] DEFAULT (0) FOR [Pitch],
CONSTRAINT [DF_t_AreaSound_FadeIn] DEFAULT (0) FOR [FadeIn],
CONSTRAINT [DF_t_AreaSound_FadeOut] DEFAULT (0) FOR [FadeOut],
CONSTRAINT [DF_t_AreaSound_MaxRangeMult] DEFAULT (0) FOR [MaxRangeMult],
CONSTRAINT [DF_t_AreaSound_ConeInside] DEFAULT (0) FOR [ConeInside],
CONSTRAINT [DF_t_AreaSound_ConeOutside] DEFAULT (0) FOR [ConeOutside],
CONSTRAINT [DF_t_AreaSound_ConeOutsideVolume] DEFAULT (0) FOR [ConeOutsideVolume],
CONSTRAINT [DF_t_AreaSound_Priority] DEFAULT (0) FOR [Priority],
CONSTRAINT [DF_t_AreaSound_Occludable] DEFAULT (1) FOR [Occludable],
CONSTRAINT [DF_t_AreaSound_GUID] DEFAULT ('{00000000-0000-0000-0000-000000000000}') FOR [GUID]
GO
ALTER TABLE [dbo].[t_AreaWaypoint] ADD
CONSTRAINT [DF_t_AreaWaypoint_PositionX] DEFAULT (0) FOR [PositionX],
CONSTRAINT [DF_t_AreaWaypoint_PositionY] DEFAULT (0) FOR [PositionY],
CONSTRAINT [DF_t_AreaWaypoint_PositionZ] DEFAULT (0) FOR [PositionZ],
CONSTRAINT [DF_t_AreaWaypoint_OrientationX] DEFAULT (0) FOR [OrientationX],
CONSTRAINT [DF_t_AreaWaypoint_OrientationY] DEFAULT (0) FOR [OrientationY],
CONSTRAINT [DF_t_AreaWaypoint_OrientationZ] DEFAULT (0) FOR [OrientationZ],
CONSTRAINT [DF_t_AreaWaypoint_Tag] DEFAULT ('') FOR [Tag],
CONSTRAINT [DF_t_AreaWaypoint_WaypointName] DEFAULT ('') FOR [WaypointName],
CONSTRAINT [DF_t_AreaWaypoint_Group] DEFAULT (0) FOR [Group],
CONSTRAINT [DF_t_AreaWaypoint_MapNoteEnabled] DEFAULT (0) FOR [MapNoteEnabled],
CONSTRAINT [DF_t_AreaWaypoint_Colour] DEFAULT (1) FOR [Colour],
CONSTRAINT [DF_t_AreaWaypoint_Comments] DEFAULT ('') FOR [Comments],
CONSTRAINT [DF_t_AreaWaypoint_MapNoteType] DEFAULT (0) FOR [MapNoteType],
CONSTRAINT [DF_t_AreaWaypoint_GUID] DEFAULT ('{00000000-0000-0000-0000-000000000000}') FOR [GUID]
GO
ALTER TABLE [dbo].[t_ConversationAnimations] ADD
CONSTRAINT [DF_t_ConversationAnimations_Locked] DEFAULT (0) FOR [Locked]
GO
ALTER TABLE [dbo].[t_CreatureAbility] ADD
CONSTRAINT [DF_t_CreatureAbility_Level] DEFAULT (0) FOR [Level],
CONSTRAINT [CK_t_CreatureAbility] CHECK ([Type] >= 0 and [Type] <= 2)
GO
ALTER TABLE [dbo].[t_CutsceneActionFBEParameter] ADD
CONSTRAINT [DF_t_CutsceneActionFBEParameter_Name] DEFAULT ('') FOR [Name],
CONSTRAINT [DF_t_CutsceneActionFBEParameter_Animatable] DEFAULT (0) FOR [Animatable],
CONSTRAINT [DF_t_CutsceneActionFBEParameter_Value] DEFAULT (0) FOR [Value]
GO
ALTER TABLE [dbo].[t_ItemProperty] ADD
CONSTRAINT [DF_t_ItemProperty_PropertyID] DEFAULT (0) FOR [PropertyID],
CONSTRAINT [DF_t_ItemProperty_Power] DEFAULT (0) FOR [Power]
GO
ALTER TABLE [dbo].[t_MapPin] ADD
CONSTRAINT [DF_t_MapPin_PinType] DEFAULT (0) FOR [PinType],
CONSTRAINT [DF_t_MapPin_InitialState] DEFAULT (0) FOR [InitialState],
CONSTRAINT [DF_t_MapPin_TerrainType] DEFAULT (0) FOR [TerrainType],
CONSTRAINT [DF_t_MapPin_LocationX] DEFAULT (0) FOR [LocationX],
CONSTRAINT [DF_t_MapPin_LocationY] DEFAULT (0) FOR [LocationY],
CONSTRAINT [DF_t_MapPin_Name] DEFAULT ('') FOR [Name],
CONSTRAINT [DF_t_MapPin_AreaTag] DEFAULT ('') FOR [AreaTag],
CONSTRAINT [DF_t_MapPin_WaypointOverride] DEFAULT ('') FOR [WaypointOverride]
GO
ALTER TABLE [dbo].[t_MapTrail] ADD
CONSTRAINT [DF_t_MapTrail_Name] DEFAULT ('') FOR [Name],
CONSTRAINT [DF_t_MapTrail_Pin1Tag] DEFAULT ('') FOR [Pin1Tag],
CONSTRAINT [DF_t_MapTrail_Pin2Tag] DEFAULT ('') FOR [Pin2Tag]
GO
ALTER TABLE [dbo].[t_MapTrailPoint] ADD
CONSTRAINT [DF_t_MapTrailPoint_LocationX] DEFAULT (0) FOR [LocationX],
CONSTRAINT [DF_t_MapTrailPoint_LocationY] DEFAULT (0) FOR [LocationY]
GO
ALTER TABLE [dbo].[t_StageFBEParameter] ADD
CONSTRAINT [DF_t_StageFBEParameter_Name] DEFAULT ('') FOR [Name],
CONSTRAINT [DF_t_StageFBEParameter_Value] DEFAULT (0) FOR [Value]
GO
ALTER TABLE [dbo].[t_VOSessionInstanceVersion] ADD
CONSTRAINT [DF_t_VOSessionInstanceVersion_CreatedOn] DEFAULT (getutcdate()) FOR [CreatedOn],
CONSTRAINT [DF_t_VOSessionInstanceVersion_CreatedBy] DEFAULT (suser_sname()) FOR [CreatedBy]
GO
ALTER TABLE [dbo].[t_VOSessionVersion] ADD
CONSTRAINT [DF_t_VOSessionVersion_CreatedOn] DEFAULT (getutcdate()) FOR [CreatedOn],
CONSTRAINT [DF_t_VOSessionVersion_CreatedBy] DEFAULT (suser_sname()) FOR [CreatedBy]
GO
ALTER TABLE [dbo].[t_AreaList] ADD
CONSTRAINT [DF_t_AreaList_Description] DEFAULT ('') FOR [Description]
GO
ALTER TABLE [dbo].[t_AreaMusicVolume] ADD
CONSTRAINT [DF_t_AreaMusicVolume_PositionX] DEFAULT (0) FOR [PositionX],
CONSTRAINT [DF_t_AreaMusicVolume_PositionY] DEFAULT (0) FOR [PositionY],
CONSTRAINT [DF_t_AreaMusicVolume_PositionZ] DEFAULT (0) FOR [PositionZ],
CONSTRAINT [DF_t_AreaMusicVolume_OrientationX] DEFAULT (0) FOR [OrientationX],
CONSTRAINT [DF_t_AreaMusicVolume_OrientationY] DEFAULT (0) FOR [OrientationY],
CONSTRAINT [DF_t_AreaMusicVolume_OrientationZ] DEFAULT (0) FOR [OrientationZ],
CONSTRAINT [DF_t_AreaMusicVolume_Tag] DEFAULT ('') FOR [Tag],
CONSTRAINT [DF_t_AreaMusicVolume_MusicVolumeName] DEFAULT ('') FOR [MusicVolumeName],
CONSTRAINT [DF_t_AreaMusicVolume_Comments] DEFAULT ('') FOR [Comments],
CONSTRAINT [DF_t_AreaMusicVolume_EnterState] DEFAULT (0) FOR [EnterState],
CONSTRAINT [DF_t_AreaMusicVolume_EnterDelay] DEFAULT (0) FOR [EnterStateDelay],
CONSTRAINT [DF_t_AreaMusicVolume_ExitState] DEFAULT (0) FOR [ExitState],
CONSTRAINT [DF_t_AreaMusicVolume_ExitDelay] DEFAULT (0) FOR [ExitStateDelay],
CONSTRAINT [DF_t_AreaMusicVolume_ScriptDelay] DEFAULT (0) FOR [ScriptDelay],
CONSTRAINT [DF_t_AreaMusicVolume_GUID] DEFAULT ('{00000000-0000-0000-0000-000000000000}') FOR [GUID]
GO
ALTER TABLE [dbo].[t_AreaObject] ADD
CONSTRAINT [DF_t_AreaObject_PositionX] DEFAULT (0) FOR [PositionX],
CONSTRAINT [DF_t_AreaObject_PositionY] DEFAULT (0) FOR [PositionY],
CONSTRAINT [DF_t_AreaObject_PositionZ] DEFAULT (0) FOR [PositionZ],
CONSTRAINT [DF_t_AreaObject_OrientationX] DEFAULT (0) FOR [OrientationX],
CONSTRAINT [DF_t_AreaObject_OrientationY] DEFAULT (0) FOR [OrientationY],
CONSTRAINT [DF_t_AreaObject_OrientationZ] DEFAULT (0) FOR [OrientationZ],
CONSTRAINT [DF_t_AreaObject_Active] DEFAULT (1) FOR [Active],
CONSTRAINT [DF_t_AreaObject_Platform] DEFAULT (0) FOR [Platform],
CONSTRAINT [DF_t_AreaObject_Tag] DEFAULT ('') FOR [Tag],
CONSTRAINT [DF_t_AreaObject_InitialAnimation] DEFAULT (0) FOR [InitialAnimation],
CONSTRAINT [DF_t_AreaObject_Team] DEFAULT ((-1)) FOR [Team],
CONSTRAINT [DF_t_AreaObject_Trackable] DEFAULT (1) FOR [Trackable],
CONSTRAINT [DF_t_AreaObject_RoomID1] DEFAULT ((-1)) FOR [RoomID1],
CONSTRAINT [DF_t_AreaObject_RoomID2] DEFAULT ((-1)) FOR [RoomID2],
CONSTRAINT [DF_t_AreaObject_Rank] DEFAULT ((-1)) FOR [Rank],
CONSTRAINT [DF_t_AreaObject_TreasureCategory] DEFAULT ((-1)) FOR [TreasureCategory],
CONSTRAINT [DF_t_AreaObject_WeaponsDrawn] DEFAULT (0) FOR [WeaponsDrawn],
CONSTRAINT [DF_t_AreaObject_PickLockLevel] DEFAULT ((-1)) FOR [PickLockLevel],
CONSTRAINT [DF_t_AreaObject_GUID] DEFAULT ('{00000000-0000-0000-0000-000000000000}') FOR [GUID],
CONSTRAINT [DF_t_AreaObject_InteractionRadius] DEFAULT (0) FOR [InteractionRadius],
CONSTRAINT [DF_t_AreaObject_TrapDetectionDifficulty] DEFAULT ((-1)) FOR [TrapDetectionDifficulty],
CONSTRAINT [DF_t_AreaObject_TrapDisarmDifficulty] DEFAULT ((-1)) FOR [TrapDisarmDifficulty],
CONSTRAINT [DF_t_AreaObject_Useable] DEFAULT ((-1)) FOR [Useable]
GO
CREATE INDEX [IX_t_AreaObject] ON [dbo].[t_AreaObject]([ObjectResRefID]) ON [PRIMARY]
GO
ALTER TABLE [dbo].[t_Character] ADD
CONSTRAINT [DF_t_Character_Name] DEFAULT ('') FOR [Name],
CONSTRAINT [DF_t_Character_Description] DEFAULT ('') FOR [Description],
CONSTRAINT [DF_t_Character_Phonetic] DEFAULT ('') FOR [Phonetic],
CONSTRAINT [DF_t_Character_Age] DEFAULT (0) FOR [Age],
CONSTRAINT [DF_t_Character_Gender] DEFAULT (3) FOR [Gender],
CONSTRAINT [DF_t_Character_Occupation] DEFAULT ('') FOR [Occupation],
CONSTRAINT [DF_t_Character_Morals] DEFAULT ('') FOR [Morals],
CONSTRAINT [DF_t_Character_Appearance] DEFAULT ('') FOR [Appearance],
CONSTRAINT [DF_t_Character_Flaws] DEFAULT ('') FOR [Flaws],
CONSTRAINT [DF_t_Character_Skills] DEFAULT ('') FOR [Skills],
CONSTRAINT [DF_t_Character_SpeechPatterns] DEFAULT ('') FOR [SpeechPatterns],
CONSTRAINT [DF_t_Character_VORecorded] DEFAULT (0) FOR [VORecorded],
CONSTRAINT [DF_t_Character_CharacterType] DEFAULT (0) FOR [CharacterType],
CONSTRAINT [DF_t_Character_Race] DEFAULT (3) FOR [Race],
CONSTRAINT [DF_t_Character_Language] DEFAULT (0) FOR [Language],
CONSTRAINT [DF_t_Character_Accent] DEFAULT ('') FOR [Accent],
CONSTRAINT [DF_t_Character_Purpose] DEFAULT ('') FOR [Purpose],
CONSTRAINT [DF_t_Character_RelationshipToPlayer] DEFAULT ('') FOR [RelationshipToPlayer],
CONSTRAINT [DF_t_Character_Archetype] DEFAULT ('') FOR [Archetype],
CONSTRAINT [DF_t_Character_Demeanor] DEFAULT ('') FOR [Demeanor],
CONSTRAINT [DF_t_Character_ImageFilename] DEFAULT ('') FOR [ImageFilename],
CONSTRAINT [DF_t_Character_PersonalBackground] DEFAULT ('') FOR [PersonalBackground],
CONSTRAINT [DF_t_Character_CulturalBackground] DEFAULT ('') FOR [CulturalBackground],
CONSTRAINT [DF_t_Character_Intelligence] DEFAULT (1) FOR [Intelligence],
CONSTRAINT [DF_t_Character_TiesToOtherCharacters] DEFAULT ('') FOR [TiesToOtherCharacters],
CONSTRAINT [DF_t_Character_CombatSoundsetNeeded] DEFAULT (0) FOR [CombatSoundsetNeeded],
CONSTRAINT [DF_t_Character_Plots] DEFAULT ('') FOR [Plots],
CONSTRAINT [DF_t_Character_Player] DEFAULT (0) FOR [Player],
CONSTRAINT [DF_t_Character_VOCastingColor] DEFAULT (0x00ffffff) FOR [VOCastingColor],
CONSTRAINT [DF_t_Character_VOCastingNotes] DEFAULT ('') FOR [VOCastingNotes],
CONSTRAINT [DF_t_Character_SoundsetResRefIDIsSharedLink] DEFAULT (0) FOR [SoundsetResRefIDIsSharedLink]
GO
ALTER TABLE [dbo].[t_ConversationCinematics] ADD
CONSTRAINT [DF_t_ConversationCinematics_TagOverride] DEFAULT (0) FOR [TagOverride],
CONSTRAINT [DF_t_ConversationCinematics_Tag] DEFAULT ('') FOR [Tag],
CONSTRAINT [DF_t_ConversationCinematics_LookAtOverride] DEFAULT (0) FOR [LookAtOverride],
CONSTRAINT [DF_t_ConversationCinematics_LookAt] DEFAULT ('') FOR [LookAt],
CONSTRAINT [DF_t_ConversationCinematics_PoseOverride] DEFAULT (0) FOR [PoseOverride],
CONSTRAINT [DF_t_ConversationCinematics_FunctionalShotActor] DEFAULT ('') FOR [FunctionalShotActor],
CONSTRAINT [DF_t_ConversationCinematics_Pose] DEFAULT ((-1)) FOR [Pose],
CONSTRAINT [DF_t_ConversationCinematics_HeadLookAtOverride] DEFAULT (0) FOR [HeadLookAtOverride],
CONSTRAINT [DF_t_ConversationCinematics_HeadLookAt] DEFAULT ('') FOR [HeadLookAt],
CONSTRAINT [DF_t_ConversationCinematics_ActivationAction] DEFAULT (0) FOR [ActivationAction],
CONSTRAINT [DF_t_ConversationCinematics_TransitionDelay] DEFAULT (0) FOR [TransitionDelay],
CONSTRAINT [DF_t_ConversationCinematics_MappingRequired] DEFAULT (1) FOR [MappingRequired],
CONSTRAINT [DF_t_ConversationCinematics_LockPose] DEFAULT (0) FOR [LockPose],
CONSTRAINT [DF_t_ConversationCinematics_HelmetOverride] DEFAULT (0) FOR [HelmetOverride],
CONSTRAINT [DF_t_ConversationCinematics_Helmet] DEFAULT (0) FOR [Helmet],
CONSTRAINT [DF_t_ConversationCinematics_WeaponsOverride] DEFAULT (0) FOR [WeaponsOverride],
CONSTRAINT [DF_t_ConversationCinematics_Weapons] DEFAULT (0) FOR [Weapons]
GO
CREATE INDEX [IX_ConvCinematics_FunctionalShotResRefID] ON [dbo].[t_ConversationCinematics]([FunctionalShotResRefID]) ON [PRIMARY]
GO
ALTER TABLE [dbo].[t_ConversationTransition] ADD
CONSTRAINT [DF_t_ConversationTransition_IsLink] DEFAULT (0) FOR [IsLink],
CONSTRAINT [CK_t_ConversationTransit] CHECK ([FromIndex] >= (-1) and [ToIndex] >= 0)
GO
ALTER TABLE [dbo].[t_Inventory] ADD
CONSTRAINT [DF_t_Inventory_StackSize] DEFAULT (0) FOR [StackSize],
CONSTRAINT [DF_t_Inventory_Droppable] DEFAULT (0) FOR [Droppable],
CONSTRAINT [DF_t_Inventory_Stealable] DEFAULT (0) FOR [Stealable],
CONSTRAINT [DF_t_Inventory_Infinite] DEFAULT (0) FOR [Infinite],
CONSTRAINT [DF_t_Inventory_SetNumber] DEFAULT (0) FOR [SetNumber]
GO
ALTER TABLE [dbo].[t_Map] ADD
CONSTRAINT [DF_t_Map_Map] DEFAULT (0) FOR [Map],
CONSTRAINT [DF_t_Map_Tag] DEFAULT ('') FOR [Tag]
GO
ALTER TABLE [dbo].[t_Role] ADD
CONSTRAINT [DF_t_Role_Name] DEFAULT ('') FOR [Name],
CONSTRAINT [DF_t_Role_Description] DEFAULT ('') FOR [Description]
GO
ALTER TABLE [dbo].[t_StageObject] ADD
CONSTRAINT [DF_t_StageObject_LookingFrom] DEFAULT ('') FOR [LookingFrom],
CONSTRAINT [DF_t_StageObject_LookingAtPrimary] DEFAULT ('') FOR [LookingAtPrimary],
CONSTRAINT [DF_t_StageObject_CreatureResRefID] DEFAULT ('') FOR [CreatureResRefID],
CONSTRAINT [DF_t_StageObject_Pose] DEFAULT ((-1)) FOR [Pose],
CONSTRAINT [DF_t_StageObject_DefaultCamera] DEFAULT ('') FOR [DefaultCamera],
CONSTRAINT [DF_t_StageObject_CloseUpCamera] DEFAULT ('') FOR [CloseUpCamera],
CONSTRAINT [DF_t_StageObject_WideCamera] DEFAULT ('') FOR [WideCamera],
CONSTRAINT [DF_t_StageObject_LookAtType] DEFAULT (1) FOR [LookAtType],
CONSTRAINT [DF_t_StageObject_ApplyDOF] DEFAULT (1) FOR [ApplyDOF],
CONSTRAINT [DF_t_StageObject_OverrideDOF] DEFAULT (0) FOR [OverrideDOF]
GO
CREATE INDEX [IX1_t_StringLanguageVariantText] ON [dbo].[t_StringLanguageVariantText]([StringID]) ON [PRIMARY]
GO
ALTER TABLE [dbo].[t_VOScriptBatchPrint] ADD
CONSTRAINT [DF_t_VOScriptBatchPrint_SPID] DEFAULT (@@spid) FOR [SPID]
GO
ALTER TABLE [dbo].[t_VOScriptInstance] ADD
CONSTRAINT [DF_t_VOScriptInstance_CreatedOn] DEFAULT (getdate()) FOR [CreatedOn],
CONSTRAINT [DF_t_VOScriptInstance_CreatedBy] DEFAULT (suser_sname()) FOR [CreatedBy],
CONSTRAINT [DF_t_VOScriptInstance_Comment] DEFAULT ('') FOR [Comment],
CONSTRAINT [DF_t_voScriptInstance_OutputFolder] DEFAULT (N'') FOR [OutputFolder]
GO
ALTER TABLE [dbo].[t_VOScriptInstanceString] ADD
CONSTRAINT [DF_t_VOScriptInstanceString_IsForeign] DEFAULT (0) FOR [IsForeign],
CONSTRAINT [DF_t_VOScriptInstanceManagement_LastModifiedOn] DEFAULT (getdate()) FOR [LastModifiedOn],
CONSTRAINT [DF_t_VOScriptInstanceManagement_LastModifiedBy] DEFAULT (suser_sname()) FOR [LastModifiedBy],
CONSTRAINT [DF_t_VOScriptInstanceString_StringVariantID] DEFAULT ((-1)) FOR [StringVariantID]
GO
CREATE INDEX [IX_t_VOScriptInstanceString] ON [dbo].[t_VOScriptInstanceString]([StringID], [Active], [Status]) ON [PRIMARY]
GO
ALTER TABLE [dbo].[t_VOScriptInstanceStringStatus] ADD
CONSTRAINT [DF_t_VOScriptInstanceStringStatus_CreatedOn] DEFAULT (getdate()) FOR [CreatedOn],
CONSTRAINT [DF_t_VOScriptInstanceStringStatus_CreatedBy] DEFAULT (suser_sname()) FOR [CreatedBy]
GO
CREATE INDEX [IX_t_VOScriptInstanceStringStatus] ON [dbo].[t_VOScriptInstanceStringStatus]([VOScriptInstanceStringID], [Active]) ON [PRIMARY]
GO
GRANT SELECT ON [dbo].[t_CharacterDelta] TO [bw_db_read]
GO
GRANT UPDATE , INSERT , DELETE ON [dbo].[t_CharacterDelta] TO [bw_db_write]
GO
GRANT SELECT ON [dbo].[t_GlobalParameters] TO [bw_db_read]
GO
GRANT UPDATE , INSERT , DELETE ON [dbo].[t_GlobalParameters] TO [bw_db_write]
GO
GRANT SELECT ON [dbo].[t_JobProcessInformation] TO [bw_db_read]
GO
GRANT UPDATE , INSERT , DELETE ON [dbo].[t_JobProcessInformation] TO [bw_db_write]
GO
GRANT SELECT ON [dbo].[t_KeyGenStringID] TO [bw_db_read]
GO
GRANT UPDATE , INSERT , DELETE ON [dbo].[t_KeyGenStringID] TO [bw_db_write]
GO
GRANT SELECT ON [dbo].[t_ModuleType] TO [bw_db_read]
GO
GRANT UPDATE , INSERT , DELETE ON [dbo].[t_ModuleType] TO [bw_db_write]
GO
GRANT SELECT ON [dbo].[t_ResourceTables] TO [bw_db_read]
GO
GRANT UPDATE , INSERT , DELETE ON [dbo].[t_ResourceTables] TO [bw_db_write]
GO
GRANT SELECT ON [dbo].[t_StringExportLabel] TO [bw_db_read]
GO
GRANT UPDATE , INSERT , DELETE ON [dbo].[t_StringExportLabel] TO [bw_db_write]
GO
GRANT SELECT ON [dbo].[t_StringImportSession] TO [bw_db_read]
GO
GRANT UPDATE , INSERT , DELETE ON [dbo].[t_StringImportSession] TO [bw_db_write]
GO
GRANT SELECT ON [dbo].[t_StringTable] TO [bw_db_read]
GO
GRANT UPDATE , INSERT , DELETE ON [dbo].[t_StringTable] TO [bw_db_write]
GO
GRANT SELECT ON [dbo].[t_StringType] TO [bw_db_read]
GO
GRANT UPDATE , INSERT , DELETE ON [dbo].[t_StringType] TO [bw_db_write]
GO
GRANT SELECT ON [dbo].[t_StringVariant] TO [bw_db_read]
GO
GRANT UPDATE , INSERT , DELETE ON [dbo].[t_StringVariant] TO [bw_db_write]
GO
GRANT SELECT ON [dbo].[t_VOScriptInstanceManagement] TO [bw_db_read]
GO
GRANT UPDATE , INSERT , DELETE ON [dbo].[t_VOScriptInstanceManagement] TO [bw_db_write]
GO
GRANT SELECT ON [dbo].[t_VOScriptLineCharacterInternal] TO [bw_db_read]
GO
GRANT UPDATE , INSERT , DELETE ON [dbo].[t_VOScriptLineCharacterInternal] TO [bw_db_write]
GO
GRANT SELECT ON [dbo].[t_VOSessionInstance] TO [bw_db_read]
GO
GRANT UPDATE , INSERT , DELETE ON [dbo].[t_VOSessionInstance] TO [bw_db_write]
GO
GRANT SELECT ON [dbo].[t_ResourceDefinition] TO [bw_db_read]
GO
GRANT UPDATE , INSERT , DELETE ON [dbo].[t_ResourceDefinition] TO [bw_db_write]
GO
GRANT SELECT ON [dbo].[t_ResourceTableRelationship] TO [bw_db_read]
GO
GRANT UPDATE , INSERT , DELETE ON [dbo].[t_ResourceTableRelationship] TO [bw_db_write]
GO
GRANT SELECT ON [dbo].[t_String] TO [bw_db_read]
GO
GRANT UPDATE , INSERT , DELETE ON [dbo].[t_String] TO [bw_db_write]
GO
GRANT SELECT ON [dbo].[t_StringExportHistory] TO [bw_db_read]
GO
GRANT UPDATE , INSERT , DELETE ON [dbo].[t_StringExportHistory] TO [bw_db_write]
GO
GRANT SELECT ON [dbo].[t_StringExportLabelResourceStats] TO [bw_db_read]
GO
GRANT UPDATE , INSERT , DELETE ON [dbo].[t_StringExportLabelResourceStats] TO [bw_db_write]
GO
GRANT SELECT ON [dbo].[t_StringExportLabelStringTypeStats] TO [bw_db_read]
GO
GRANT UPDATE , INSERT , DELETE ON [dbo].[t_StringExportLabelStringTypeStats] TO [bw_db_write]
GO
GRANT SELECT ON [dbo].[t_ResRef] TO [bw_db_read]
GO
GRANT UPDATE , INSERT , DELETE ON [dbo].[t_ResRef] TO [bw_db_write]
GO
DENY UPDATE , DELETE ON [dbo].[t_StringExportHistoryAdjustmentLog] TO [public] CASCADE
GO
GRANT SELECT ON [dbo].[t_StringExportHistoryAdjustmentLog] TO [bw_db_read]
GO
GRANT INSERT ON [dbo].[t_StringExportHistoryAdjustmentLog] TO [bw_db_write]
GO
GRANT SELECT ON [dbo].[t_Module] TO [bw_db_read]
GO
GRANT UPDATE , INSERT , DELETE ON [dbo].[t_Module] TO [bw_db_write]
GO
GRANT SELECT ON [dbo].[t_StringSound] TO [bw_db_read]
GO
GRANT UPDATE , INSERT , DELETE ON [dbo].[t_StringSound] TO [bw_db_write]
GO
GRANT SELECT ON [dbo].[t_ModuleAssociation] TO [bw_db_read]
GO
GRANT UPDATE , INSERT , DELETE ON [dbo].[t_ModuleAssociation] TO [bw_db_write]
GO
GRANT SELECT ON [dbo].[t_ModuleVariable] TO [bw_db_read]
GO
GRANT UPDATE , INSERT , DELETE ON [dbo].[t_ModuleVariable] TO [bw_db_write]
GO
GRANT SELECT ON [dbo].[t_Area] TO [bw_db_read]
GO
GRANT UPDATE , INSERT , DELETE ON [dbo].[t_Area] TO [bw_db_write]
GO
GRANT SELECT ON [dbo].[t_Conversation] TO [bw_db_read]
GO
GRANT UPDATE , INSERT , DELETE ON [dbo].[t_Conversation] TO [bw_db_write]
GO
GRANT SELECT ON [dbo].[t_ConversationLine] TO [bw_db_read]
GO
GRANT UPDATE , INSERT , DELETE ON [dbo].[t_ConversationLine] TO [bw_db_write]
GO
GRANT SELECT ON [dbo].[t_Creature] TO [bw_db_read]
GO
GRANT UPDATE , INSERT , DELETE ON [dbo].[t_Creature] TO [bw_db_write]
GO
GRANT SELECT ON [dbo].[t_Cutscene] TO [bw_db_read]
GO
GRANT UPDATE , INSERT , DELETE ON [dbo].[t_Cutscene] TO [bw_db_write]
GO
GRANT SELECT ON [dbo].[t_CutsceneAction] TO [bw_db_read]
GO
GRANT UPDATE , INSERT , DELETE ON [dbo].[t_CutsceneAction] TO [bw_db_write]
GO
GRANT SELECT ON [dbo].[t_CutsceneObject] TO [bw_db_read]
GO
GRANT UPDATE , INSERT , DELETE ON [dbo].[t_CutsceneObject] TO [bw_db_write]
GO
GRANT SELECT ON [dbo].[t_CutsceneTrack] TO [bw_db_read]
GO
GRANT UPDATE , INSERT , DELETE ON [dbo].[t_CutsceneTrack] TO [bw_db_write]
GO
GRANT SELECT ON [dbo].[t_Item] TO [bw_db_read]
GO
GRANT UPDATE , INSERT , DELETE ON [dbo].[t_Item] TO [bw_db_write]
GO
GRANT SELECT ON [dbo].[t_Merchant] TO [bw_db_read]
GO
GRANT UPDATE , INSERT , DELETE ON [dbo].[t_Merchant] TO [bw_db_write]
GO
GRANT SELECT ON [dbo].[t_ModuleResRef] TO [bw_db_read]
GO
GRANT UPDATE , INSERT , DELETE ON [dbo].[t_ModuleResRef] TO [bw_db_write]
GO
GRANT SELECT ON [dbo].[t_ModuleResRefVersion] TO [bw_db_read]
GO
GRANT UPDATE , INSERT , DELETE ON [dbo].[t_ModuleResRefVersion] TO [bw_db_write]
GO
GRANT SELECT ON [dbo].[t_Placeable] TO [bw_db_read]
GO
GRANT UPDATE , INSERT , DELETE ON [dbo].[t_Placeable] TO [bw_db_write]
GO
GRANT SELECT ON [dbo].[t_Plot] TO [bw_db_read]
GO
GRANT UPDATE , INSERT , DELETE ON [dbo].[t_Plot] TO [bw_db_write]
GO
GRANT SELECT ON [dbo].[t_PlotStatus] TO [bw_db_read]
GO
GRANT UPDATE , INSERT , DELETE ON [dbo].[t_PlotStatus] TO [bw_db_write]
GO
GRANT SELECT ON [dbo].[t_Script] TO [bw_db_read]
GO
GRANT UPDATE , INSERT , DELETE ON [dbo].[t_Script] TO [bw_db_write]
GO
GRANT SELECT ON [dbo].[t_Script_Reference] TO [bw_db_read]
GO
GRANT UPDATE , INSERT , DELETE ON [dbo].[t_Script_Reference] TO [bw_db_write]
GO
GRANT SELECT ON [dbo].[t_Stage] TO [bw_db_read]
GO
GRANT UPDATE , INSERT , DELETE ON [dbo].[t_Stage] TO [bw_db_write]
GO
GRANT SELECT ON [dbo].[t_StringLanguage] TO [bw_db_read]
GO
GRANT UPDATE , INSERT , DELETE ON [dbo].[t_StringLanguage] TO [bw_db_write]
GO
GRANT SELECT ON [dbo].[t_StringLanguageTag] TO [bw_db_read]
GO
GRANT UPDATE , INSERT , DELETE ON [dbo].[t_StringLanguageTag] TO [bw_db_write]
GO
GRANT SELECT ON [dbo].[t_StringLanguageVariant] TO [bw_db_read]
GO
GRANT UPDATE , INSERT , DELETE ON [dbo].[t_StringLanguageVariant] TO [bw_db_write]
GO
GRANT SELECT ON [dbo].[t_StringLanguageVariantVersion] TO [bw_db_read]
GO
GRANT UPDATE , INSERT , DELETE ON [dbo].[t_StringLanguageVariantVersion] TO [bw_db_write]
GO
GRANT SELECT ON [dbo].[t_StringText] TO [bw_db_read]
GO
GRANT UPDATE , INSERT , DELETE ON [dbo].[t_StringText] TO [bw_db_write]
GO
GRANT SELECT ON [dbo].[t_StringVersion] TO [bw_db_read]
GO
GRANT UPDATE , INSERT , DELETE ON [dbo].[t_StringVersion] TO [bw_db_write]
GO
GRANT SELECT ON [dbo].[t_Trigger] TO [bw_db_read]
GO
GRANT UPDATE , INSERT , DELETE ON [dbo].[t_Trigger] TO [bw_db_write]
GO
GRANT SELECT ON [dbo].[t_VOScript] TO [bw_db_read]
GO
GRANT UPDATE , INSERT , DELETE ON [dbo].[t_VOScript] TO [bw_db_write]
GO
GRANT SELECT ON [dbo].[t_AreaAudioVolume] TO [bw_db_read]
GO
GRANT UPDATE , INSERT , DELETE ON [dbo].[t_AreaAudioVolume] TO [bw_db_write]
GO
GRANT SELECT ON [dbo].[t_AreaAudioVolumeGeometry] TO [bw_db_read]
GO
GRANT UPDATE , INSERT , DELETE ON [dbo].[t_AreaAudioVolumeGeometry] TO [bw_db_write]
GO
GRANT SELECT ON [dbo].[t_AreaAudioVolumeSound] TO [bw_db_read]
GO
GRANT UPDATE , INSERT , DELETE ON [dbo].[t_AreaAudioVolumeSound] TO [bw_db_write]
GO
GRANT SELECT ON [dbo].[t_AreaInstanceAssociations] TO [bw_db_read]
GO
GRANT UPDATE , INSERT , DELETE ON [dbo].[t_AreaInstanceAssociations] TO [bw_db_write]
GO
GRANT SELECT ON [dbo].[t_AreaMusicVolumeGeometry] TO [bw_db_read]
GO
GRANT UPDATE , INSERT , DELETE ON [dbo].[t_AreaMusicVolumeGeometry] TO [bw_db_write]
GO
GRANT SELECT ON [dbo].[t_AreaObjectGeometry] TO [bw_db_read]
GO
GRANT UPDATE , INSERT , DELETE ON [dbo].[t_AreaObjectGeometry] TO [bw_db_write]
GO
GRANT SELECT ON [dbo].[t_AreaObjectVariable] TO [bw_db_read]
GO
GRANT UPDATE , INSERT , DELETE ON [dbo].[t_AreaObjectVariable] TO [bw_db_write]
GO
GRANT SELECT ON [dbo].[t_AreaReverbVolume] TO [bw_db_read]
GO
GRANT UPDATE , INSERT , DELETE ON [dbo].[t_AreaReverbVolume] TO [bw_db_write]
GO
GRANT SELECT ON [dbo].[t_AreaReverbVolumeGeometry] TO [bw_db_read]
GO
GRANT UPDATE , INSERT , DELETE ON [dbo].[t_AreaReverbVolumeGeometry] TO [bw_db_write]
GO
GRANT SELECT ON [dbo].[t_AreaSound] TO [bw_db_read]
GO
GRANT UPDATE , INSERT , DELETE ON [dbo].[t_AreaSound] TO [bw_db_write]
GO
GRANT SELECT ON [dbo].[t_AreaWaypoint] TO [bw_db_read]
GO
GRANT UPDATE , INSERT , DELETE ON [dbo].[t_AreaWaypoint] TO [bw_db_write]
GO
GRANT SELECT ON [dbo].[t_ConversationAnimations] TO [bw_db_read]
GO
GRANT UPDATE , INSERT , DELETE ON [dbo].[t_ConversationAnimations] TO [bw_db_write]
GO
GRANT SELECT ON [dbo].[t_CreatureAbility] TO [bw_db_read]
GO
GRANT UPDATE , INSERT , DELETE ON [dbo].[t_CreatureAbility] TO [bw_db_write]
GO
GRANT SELECT ON [dbo].[t_CutsceneActionFBEParameter] TO [bw_db_read]
GO
GRANT UPDATE , INSERT , DELETE ON [dbo].[t_CutsceneActionFBEParameter] TO [bw_db_write]
GO
GRANT SELECT ON [dbo].[t_CutsceneActionTransition] TO [bw_db_read]
GO
GRANT UPDATE , INSERT , DELETE ON [dbo].[t_CutsceneActionTransition] TO [bw_db_write]
GO
GRANT SELECT ON [dbo].[t_ItemProperty] TO [bw_db_read]
GO
GRANT UPDATE , INSERT , DELETE ON [dbo].[t_ItemProperty] TO [bw_db_write]
GO
GRANT SELECT ON [dbo].[t_MapPin] TO [bw_db_read]
GO
GRANT UPDATE , INSERT , DELETE ON [dbo].[t_MapPin] TO [bw_db_write]
GO
GRANT SELECT ON [dbo].[t_MapTrail] TO [bw_db_read]
GO
GRANT UPDATE , INSERT , DELETE ON [dbo].[t_MapTrail] TO [bw_db_write]
GO
GRANT SELECT ON [dbo].[t_MapTrailPoint] TO [bw_db_read]
GO
GRANT UPDATE , INSERT , DELETE ON [dbo].[t_MapTrailPoint] TO [bw_db_write]
GO
GRANT SELECT ON [dbo].[t_MerchantRestrictedItem] TO [bw_db_read]
GO
GRANT UPDATE , INSERT , DELETE ON [dbo].[t_MerchantRestrictedItem] TO [bw_db_write]
GO
GRANT SELECT ON [dbo].[t_PlotAssist] TO [bw_db_read]
GO
GRANT UPDATE , INSERT , DELETE ON [dbo].[t_PlotAssist] TO [bw_db_write]
GO
GRANT SELECT ON [dbo].[t_StageFBEParameter] TO [bw_db_read]
GO
GRANT UPDATE , INSERT , DELETE ON [dbo].[t_StageFBEParameter] TO [bw_db_write]
GO
GRANT SELECT ON [dbo].[t_StageObjectReference] TO [bw_db_read]
GO
GRANT UPDATE , INSERT , DELETE ON [dbo].[t_StageObjectReference] TO [bw_db_write]
GO
GRANT SELECT ON [dbo].[t_VOSessionInstanceVersion] TO [bw_db_read]
GO
GRANT UPDATE , INSERT , DELETE ON [dbo].[t_VOSessionInstanceVersion] TO [bw_db_write]
GO
GRANT SELECT ON [dbo].[t_VOSessionVersion] TO [bw_db_read]
GO
GRANT UPDATE , INSERT , DELETE ON [dbo].[t_VOSessionVersion] TO [bw_db_write]
GO
GRANT SELECT ON [dbo].[t_Variable] TO [bw_db_read]
GO
GRANT UPDATE , INSERT , DELETE ON [dbo].[t_Variable] TO [bw_db_write]
GO
GRANT SELECT ON [dbo].[t_AreaList] TO [bw_db_read]
GO
GRANT UPDATE , INSERT , DELETE ON [dbo].[t_AreaList] TO [bw_db_write]
GO
GRANT SELECT ON [dbo].[t_AreaMusicVolume] TO [bw_db_read]
GO
GRANT UPDATE , INSERT , DELETE ON [dbo].[t_AreaMusicVolume] TO [bw_db_write]
GO
GRANT SELECT ON [dbo].[t_AreaObject] TO [bw_db_read]
GO
GRANT UPDATE , INSERT , DELETE ON [dbo].[t_AreaObject] TO [bw_db_write]
GO
GRANT SELECT ON [dbo].[t_AssociatedResource] TO [bw_db_read]
GO
GRANT UPDATE , INSERT , DELETE ON [dbo].[t_AssociatedResource] TO [bw_db_write]
GO
GRANT SELECT ON [dbo].[t_Character] TO [bw_db_read]
GO
GRANT UPDATE , INSERT , DELETE ON [dbo].[t_Character] TO [bw_db_write]
GO
GRANT SELECT ON [dbo].[t_ConversationCinematics] TO [bw_db_read]
GO
GRANT UPDATE , INSERT , DELETE ON [dbo].[t_ConversationCinematics] TO [bw_db_write]
GO
GRANT SELECT ON [dbo].[t_ConversationTagMap] TO [bw_db_read]
GO
GRANT UPDATE , INSERT , DELETE ON [dbo].[t_ConversationTagMap] TO [bw_db_write]
GO
GRANT SELECT ON [dbo].[t_ConversationTransition] TO [bw_db_read]
GO
GRANT UPDATE , INSERT , DELETE ON [dbo].[t_ConversationTransition] TO [bw_db_write]
GO
GRANT SELECT ON [dbo].[t_Inventory] TO [bw_db_read]
GO
GRANT UPDATE , INSERT , DELETE ON [dbo].[t_Inventory] TO [bw_db_write]
GO
GRANT SELECT ON [dbo].[t_Map] TO [bw_db_read]
GO
GRANT UPDATE , INSERT , DELETE ON [dbo].[t_Map] TO [bw_db_write]
GO
GRANT SELECT ON [dbo].[t_Role] TO [bw_db_read]
GO
GRANT UPDATE , INSERT , DELETE ON [dbo].[t_Role] TO [bw_db_write]
GO
GRANT SELECT ON [dbo].[t_StageObject] TO [bw_db_read]
GO
GRANT UPDATE , INSERT , DELETE ON [dbo].[t_StageObject] TO [bw_db_write]
GO
GRANT SELECT ON [dbo].[t_StringLanguageVariantText] TO [bw_db_read]
GO
GRANT UPDATE , INSERT , DELETE ON [dbo].[t_StringLanguageVariantText] TO [bw_db_write]
GO
GRANT SELECT ON [dbo].[t_VOScriptBatchPrint] TO [bw_db_read]
GO
GRANT UPDATE , INSERT , DELETE ON [dbo].[t_VOScriptBatchPrint] TO [bw_db_write]
GO
GRANT SELECT ON [dbo].[t_VOScriptInstance] TO [bw_db_read]
GO
GRANT UPDATE , INSERT , DELETE ON [dbo].[t_VOScriptInstance] TO [bw_db_write]
GO
GRANT SELECT ON [dbo].[t_VOScriptInstanceString] TO [bw_db_read]
GO
GRANT UPDATE , INSERT , DELETE ON [dbo].[t_VOScriptInstanceString] TO [bw_db_write]
GO
GRANT SELECT ON [dbo].[t_VOScriptInstanceStringStatus] TO [bw_db_read]
GO
GRANT UPDATE , INSERT , DELETE ON [dbo].[t_VOScriptInstanceStringStatus] TO [bw_db_write]
GO
GRANT SELECT ON [dbo].[t_VOScriptStringRevision] TO [bw_db_read]
GO
GRANT UPDATE , INSERT , DELETE ON [dbo].[t_VOScriptStringRevision] TO [bw_db_write]
GO
GRANT SELECT ON [dbo].[t_VOSession] TO [bw_db_read]
GO
GRANT UPDATE , INSERT , DELETE ON [dbo].[t_VOSession] TO [bw_db_write]
GO
ALTER TABLE [dbo].[t_ResourceDefinition] ADD
CONSTRAINT [FK_t_ResourceDefinition_t_ResourceTables] FOREIGN KEY
(
[BaseResourceTableID]
) REFERENCES [dbo].[t_ResourceTables] (
[ID]
)
GO
ALTER TABLE [dbo].[t_ResourceTableRelationship] ADD
CONSTRAINT [FK_t_ResourceTableRelationship_t_ResourceTables] FOREIGN KEY
(
[ParentResourceTableID]
) REFERENCES [dbo].[t_ResourceTables] (
[ID]
),
CONSTRAINT [FK_t_ResourceTableRelationship_t_ResourceTables1] FOREIGN KEY
(
[ChildResourceTableID]
) REFERENCES [dbo].[t_ResourceTables] (
[ID]
)
GO
ALTER TABLE [dbo].[t_String] ADD
CONSTRAINT [FK_t_String_t_StringTable] FOREIGN KEY
(
[StringTableID]
) REFERENCES [dbo].[t_StringTable] (
[ID]
)
GO
ALTER TABLE [dbo].[t_StringExportHistory] ADD
CONSTRAINT [FK_StringExportHistory_StringExportLabel] FOREIGN KEY
(
[StringExportLabelID]
) REFERENCES [dbo].[t_StringExportLabel] (
[ID]
)
GO
ALTER TABLE [dbo].[t_StringExportLabelResourceStats] ADD
CONSTRAINT [FK_StringExportLabelResourceStats_StringExportLabel] FOREIGN KEY
(
[StringExportLabelID]
) REFERENCES [dbo].[t_StringExportLabel] (
[ID]
)
GO
ALTER TABLE [dbo].[t_StringExportLabelStringTypeStats] ADD
CONSTRAINT [FK_StringExportLabelStringTypeStats_StringExportLabel] FOREIGN KEY
(
[StringExportLabelID]
) REFERENCES [dbo].[t_StringExportLabel] (
[ID]
)
GO
ALTER TABLE [dbo].[t_ResRef] ADD
CONSTRAINT [FK_t_ResRef_t_ResourceDefinition] FOREIGN KEY
(
[ResType]
) REFERENCES [dbo].[t_ResourceDefinition] (
[ResType]
)
GO
ALTER TABLE [dbo].[t_StringExportHistoryAdjustmentLog] ADD
CONSTRAINT [FK_StringExportHistoryAdjustmentLog_StringExportHistory] FOREIGN KEY
(
[StringExportHistoryID]
) REFERENCES [dbo].[t_StringExportHistory] (
[ID]
)
GO
ALTER TABLE [dbo].[t_Module] ADD
CONSTRAINT [FK_t_Module_t_ModuleType] FOREIGN KEY
(
[Type]
) REFERENCES [dbo].[t_ModuleType] (
[ID]
),
CONSTRAINT [FK_t_Module_t_ResRef] FOREIGN KEY
(
[StartAreaResRefID]
) REFERENCES [dbo].[t_ResRef] (
[ID]
),
CONSTRAINT [FK_t_Module_t_ResRef1] FOREIGN KEY
(
[ScriptResRefID]
) REFERENCES [dbo].[t_ResRef] (
[ID]
),
CONSTRAINT [FK_t_Module_t_ResRef2] FOREIGN KEY
(
[ClientScriptResRefID]
) REFERENCES [dbo].[t_ResRef] (
[ID]
)
GO
ALTER TABLE [dbo].[t_StringSound] ADD
CONSTRAINT [FK_t_StringSound_t_ResRef] FOREIGN KEY
(
[SoundResRefID]
) REFERENCES [dbo].[t_ResRef] (
[ID]
),
CONSTRAINT [FK_t_StringSound_t_String] FOREIGN KEY
(
[StringID]
) REFERENCES [dbo].[t_String] (
[ID]
)
GO
ALTER TABLE [dbo].[t_ModuleAssociation] ADD
CONSTRAINT [FK_t_ModuleAssociation_t_Module] FOREIGN KEY
(
[ParentModuleID]
) REFERENCES [dbo].[t_Module] (
[ID]
),
CONSTRAINT [FK_t_ModuleAssociation_t_Module1] FOREIGN KEY
(
[ChildModuleID]
) REFERENCES [dbo].[t_Module] (
[ID]
) ON DELETE CASCADE
GO
ALTER TABLE [dbo].[t_ModuleVariable] ADD
CONSTRAINT [FK_t_ModuleVariable_t_Module] FOREIGN KEY
(
[ModuleID]
) REFERENCES [dbo].[t_Module] (
[ID]
)
GO
ALTER TABLE [dbo].[t_Area] ADD
CONSTRAINT [FK_t_Area_t_ModuleResRefVersion] FOREIGN KEY
(
[ModuleResRefVersionID]
) REFERENCES [dbo].[t_ModuleResRefVersion] (
[ID]
),
CONSTRAINT [FK_t_Area_t_ResRef] FOREIGN KEY
(
[ScriptResRefID]
) REFERENCES [dbo].[t_ResRef] (
[ID]
),
CONSTRAINT [FK_t_Area_t_ResRef1] FOREIGN KEY
(
[AreaListResRefID]
) REFERENCES [dbo].[t_ResRef] (
[ID]
),
CONSTRAINT [FK_t_Area_t_String] FOREIGN KEY
(
[NameStringID]
) REFERENCES [dbo].[t_String] (
[ID]
)
GO
ALTER TABLE [dbo].[t_Conversation] ADD
CONSTRAINT [FK_t_Conversation_EndConversationPlotResRefID_t_ResRef] FOREIGN KEY
(
[EndConversationPlotResRefID]
) REFERENCES [dbo].[t_ResRef] (
[ID]
),
CONSTRAINT [FK_t_Conversation_t_ModuleResRefVersion] FOREIGN KEY
(
[ModuleResRefVersionID]
) REFERENCES [dbo].[t_ModuleResRefVersion] (
[ID]
),
CONSTRAINT [FK_t_Conversation_t_ResRef] FOREIGN KEY
(
[EndConversationScriptResRefID]
) REFERENCES [dbo].[t_ResRef] (
[ID]
),
CONSTRAINT [FK_t_Conversation_t_ResRef1] FOREIGN KEY
(
[StageResRefID]
) REFERENCES [dbo].[t_ResRef] (
[ID]
),
CONSTRAINT [FK_t_Conversation_t_ResRef3] FOREIGN KEY
(
[PreviewAreaResRefID]
) REFERENCES [dbo].[t_ResRef] (
[ID]
)
GO
ALTER TABLE [dbo].[t_ConversationLine] ADD
CONSTRAINT [FK_t_ConversationLine_ActionPlotResRefID_t_ResRef] FOREIGN KEY
(
[ActionPlotResRefID]
) REFERENCES [dbo].[t_ResRef] (
[ID]
),
CONSTRAINT [FK_t_ConversationLine_ConditionPlotResRefID_t_ResRef] FOREIGN KEY
(
[ConditionPlotResRefID]
) REFERENCES [dbo].[t_ResRef] (
[ID]
),
CONSTRAINT [FK_t_ConversationLine_t_Conversation] FOREIGN KEY
(
[ModuleResRefVersionID]
) REFERENCES [dbo].[t_Conversation] (
[ModuleResRefVersionID]
),
CONSTRAINT [FK_t_ConversationLine_t_ResRef] FOREIGN KEY
(
[ConditionScriptResRefID]
) REFERENCES [dbo].[t_ResRef] (
[ID]
),
CONSTRAINT [FK_t_ConversationLine_t_ResRef1] FOREIGN KEY
(
[ActionScriptResRefID]
) REFERENCES [dbo].[t_ResRef] (
[ID]
),
CONSTRAINT [FK_t_ConversationLine_t_ResRef2] FOREIGN KEY
(
[StageResRefID]
) REFERENCES [dbo].[t_ResRef] (
[ID]
),
CONSTRAINT [FK_t_ConversationLine_t_ResRef3] FOREIGN KEY
(
[PreviewAreaResRefID]
) REFERENCES [dbo].[t_ResRef] (
[ID]
),
CONSTRAINT [FK_t_ConversationLine_t_ResRef4] FOREIGN KEY
(
[CustomCutsceneResRefID]
) REFERENCES [dbo].[t_ResRef] (
[ID]
),
CONSTRAINT [FK_t_ConversationLine_t_ResRef5] FOREIGN KEY
(
[CameraFunctionalShotResRefID]
) REFERENCES [dbo].[t_ResRef] (
[ID]
),
CONSTRAINT [FK_t_ConversationLine_t_String] FOREIGN KEY
(
[TextStringID]
) REFERENCES [dbo].[t_String] (
[ID]
)
GO
ALTER TABLE [dbo].[t_Creature] ADD
CONSTRAINT [FK_t_Creature_t_ModuleResRefVersion] FOREIGN KEY
(
[ModuleResRefVersionID]
) REFERENCES [dbo].[t_ModuleResRefVersion] (
[ID]
),
CONSTRAINT [FK_t_Creature_t_ResRef] FOREIGN KEY
(
[ConversationResRefID]
) REFERENCES [dbo].[t_ResRef] (
[ID]
),
CONSTRAINT [FK_t_Creature_t_ResRef1] FOREIGN KEY
(
[ScriptResRefID]
) REFERENCES [dbo].[t_ResRef] (
[ID]
),
CONSTRAINT [FK_t_Creature_t_ResRef2] FOREIGN KEY
(
[CharacterResRefID]
) REFERENCES [dbo].[t_ResRef] (
[ID]
),
CONSTRAINT [FK_t_Creature_t_String] FOREIGN KEY
(
[NameStringID]
) REFERENCES [dbo].[t_String] (
[ID]
)
GO
ALTER TABLE [dbo].[t_Cutscene] ADD
CONSTRAINT [FK_t_Cutscene_t_ModuleResRefVersion] FOREIGN KEY
(
[ModuleResRefVersionID]
) REFERENCES [dbo].[t_ModuleResRefVersion] (
[ID]
),
CONSTRAINT [FK_t_Cutscene_t_ResRef] FOREIGN KEY
(
[EndScriptResRefID]
) REFERENCES [dbo].[t_ResRef] (
[ID]
),
CONSTRAINT [FK_t_Cutscene_t_ResRef1] FOREIGN KEY
(
[StageResRefID]
) REFERENCES [dbo].[t_ResRef] (
[ID]
),
CONSTRAINT [FK_t_Cutscene_t_ResRef2] FOREIGN KEY
(
[AreaResRefID]
) REFERENCES [dbo].[t_ResRef] (
[ID]
)
GO
ALTER TABLE [dbo].[t_CutsceneAction] ADD
CONSTRAINT [FK_t_CutsceneAction_t_CutsceneTrack] FOREIGN KEY
(
[ModuleResRefVersionID],
[CutsceneObjectInstanceID],
[CutsceneTrackInstanceID]
) REFERENCES [dbo].[t_CutsceneTrack] (
[ModuleResRefVersionID],
[CutsceneObjectInstanceID],
[InstanceID]
),
CONSTRAINT [FK_t_CutsceneAction_t_ResRef] FOREIGN KEY
(
[ResRefID1]
) REFERENCES [dbo].[t_ResRef] (
[ID]
),
CONSTRAINT [FK_t_CutsceneAction_t_String] FOREIGN KEY
(
[StringID1]
) REFERENCES [dbo].[t_String] (
[ID]
)
GO
ALTER TABLE [dbo].[t_CutsceneObject] ADD
CONSTRAINT [FK_t_CutsceneObject_t_Cutscene] FOREIGN KEY
(
[ModuleResRefVersionID]
) REFERENCES [dbo].[t_Cutscene] (
[ModuleResRefVersionID]
),
CONSTRAINT [FK_t_CutsceneObject_t_ResRef] FOREIGN KEY
(
[ResRefID]
) REFERENCES [dbo].[t_ResRef] (
[ID]
)
GO
ALTER TABLE [dbo].[t_CutsceneTrack] ADD
CONSTRAINT [FK_t_CutsceneTrack_t_CutsceneObject] FOREIGN KEY
(
[ModuleResRefVersionID],
[CutsceneObjectInstanceID]
) REFERENCES [dbo].[t_CutsceneObject] (
[ModuleResRefVersionID],
[InstanceID]
)
GO
ALTER TABLE [dbo].[t_Item] ADD
CONSTRAINT [FK_t_Item_t_ModuleResRefVersion] FOREIGN KEY
(
[ModuleResRefVersionID]
) REFERENCES [dbo].[t_ModuleResRefVersion] (
[ID]
),
CONSTRAINT [FK_t_Item_t_ResRef] FOREIGN KEY
(
[ScriptResRefID]
) REFERENCES [dbo].[t_ResRef] (
[ID]
),
CONSTRAINT [FK_t_Item_t_String] FOREIGN KEY
(
[NameStringID]
) REFERENCES [dbo].[t_String] (
[ID]
),
CONSTRAINT [FK_t_Item_t_String1] FOREIGN KEY
(
[DescriptionStringID]
) REFERENCES [dbo].[t_String] (
[ID]
)
GO
ALTER TABLE [dbo].[t_Merchant] ADD
CONSTRAINT [FK_t_Merchant_t_ModuleResRefVersion] FOREIGN KEY
(
[ModuleResRefVersionID]
) REFERENCES [dbo].[t_ModuleResRefVersion] (
[ID]
),
CONSTRAINT [FK_t_Merchant_t_ResRef] FOREIGN KEY
(
[ScriptResRefID]
) REFERENCES [dbo].[t_ResRef] (
[ID]
),
CONSTRAINT [FK_t_Merchant_t_String] FOREIGN KEY
(
[NameStringID]
) REFERENCES [dbo].[t_String] (
[ID]
)
GO
ALTER TABLE [dbo].[t_ModuleResRef] ADD
CONSTRAINT [FK_t_ModuleResRef_C_t_ModuleResRefVersion] FOREIGN KEY
(
[CurrentModuleResRefVersionID]
) REFERENCES [dbo].[t_ModuleResRefVersion] (
[ID]
),
CONSTRAINT [FK_t_ModuleResRef_S_t_ModuleResRefVersion] FOREIGN KEY
(
[ScratchModuleResRefVersionID]
) REFERENCES [dbo].[t_ModuleResRefVersion] (
[ID]
),
CONSTRAINT [FK_t_ModuleResRef_t_Module] FOREIGN KEY
(
[ModuleID]
) REFERENCES [dbo].[t_Module] (
[ID]
),
CONSTRAINT [FK_t_ModuleResRef_t_ResRef] FOREIGN KEY
(
[ResRefID]
) REFERENCES [dbo].[t_ResRef] (
[ID]
)
GO
ALTER TABLE [dbo].[t_ModuleResRefVersion] ADD
CONSTRAINT [FK_t_ModuleResRefVersion_t_Module] FOREIGN KEY
(
[OwnerModuleID]
) REFERENCES [dbo].[t_Module] (
[ID]
),
CONSTRAINT [FK_t_ModuleResRefVersion_t_ModuleResRef] FOREIGN KEY
(
[ModuleID],
[ResRefID]
) REFERENCES [dbo].[t_ModuleResRef] (
[ModuleID],
[ResRefID]
)
GO
ALTER TABLE [dbo].[t_Placeable] ADD
CONSTRAINT [FK_t_Conversation_t_ResRef2] FOREIGN KEY
(
[ConversationResRefID]
) REFERENCES [dbo].[t_ResRef] (
[ID]
),
CONSTRAINT [FK_t_Placeable_t_ModuleResRefVersion] FOREIGN KEY
(
[ModuleResRefVersionID]
) REFERENCES [dbo].[t_ModuleResRefVersion] (
[ID]
),
CONSTRAINT [FK_t_Placeable_t_ResRef] FOREIGN KEY
(
[ScriptResRefID]
) REFERENCES [dbo].[t_ResRef] (
[ID]
),
CONSTRAINT [FK_t_Placeable_t_ResRef1] FOREIGN KEY
(
[CharacterResRefID]
) REFERENCES [dbo].[t_ResRef] (
[ID]
),
CONSTRAINT [FK_t_Placeable_t_String] FOREIGN KEY
(
[NameStringID]
) REFERENCES [dbo].[t_String] (
[ID]
)
GO
ALTER TABLE [dbo].[t_Plot] ADD
CONSTRAINT [FK_t_Plot_ParentPlotResRefID_t_ResRef] FOREIGN KEY
(
[ParentPlotResRefID]
) REFERENCES [dbo].[t_ResRef] (
[ID]
),
CONSTRAINT [FK_t_Plot_ScriptResRefID_t_ResRef] FOREIGN KEY
(
[ScriptResRefID]
) REFERENCES [dbo].[t_ResRef] (
[ID]
),
CONSTRAINT [FK_t_Plot_t_ModuleResRefVersion] FOREIGN KEY
(
[ModuleResRefVersionID]
) REFERENCES [dbo].[t_ModuleResRefVersion] (
[ID]
),
CONSTRAINT [FK_t_Plot_t_ResRef] FOREIGN KEY
(
[ParentPlotResRefID]
) REFERENCES [dbo].[t_ResRef] (
[ID]
),
CONSTRAINT [FK_t_Plot_t_String] FOREIGN KEY
(
[NameStringID]
) REFERENCES [dbo].[t_String] (
[ID]
)
GO
ALTER TABLE [dbo].[t_PlotStatus] ADD
CONSTRAINT [FK_t_PlotStatus_Journal_t_String] FOREIGN KEY
(
[JournalTextStringID]
) REFERENCES [dbo].[t_String] (
[ID]
),
CONSTRAINT [FK_t_PlotStatus_t_Plot] FOREIGN KEY
(
[ModuleResRefVersionID]
) REFERENCES [dbo].[t_Plot] (
[ModuleResRefVersionID]
)
GO
ALTER TABLE [dbo].[t_Script] ADD
CONSTRAINT [FK_t_Script_t_ModuleResRefVersion] FOREIGN KEY
(
[ModuleResRefVersionID]
) REFERENCES [dbo].[t_ModuleResRefVersion] (
[ID]
)
GO
ALTER TABLE [dbo].[t_Script_Reference] ADD
CONSTRAINT [FK_t_Script_Reference_t_ResRef] FOREIGN KEY
(
[ReferencedResRefID]
) REFERENCES [dbo].[t_ResRef] (
[ID]
),
CONSTRAINT [FK_t_Script_Reference_t_Script] FOREIGN KEY
(
[ModuleResRefVersionID]
) REFERENCES [dbo].[t_Script] (
[ModuleResRefVersionID]
) ON DELETE CASCADE
GO
ALTER TABLE [dbo].[t_Stage] ADD
CONSTRAINT [FK_t_Stage_t_ModuleResRefVersion] FOREIGN KEY
(
[ModuleResRefVersionID]
) REFERENCES [dbo].[t_ModuleResRefVersion] (
[ID]
),
CONSTRAINT [FK_t_Stage_t_ResRef] FOREIGN KEY
(
[AreaResRefID]
) REFERENCES [dbo].[t_ResRef] (
[ID]
)
GO
ALTER TABLE [dbo].[t_StringLanguage] ADD
CONSTRAINT [FK_StringLanguage_StringLanguageTag] FOREIGN KEY
(
[DefaultStringLanguageTagID]
) REFERENCES [dbo].[t_StringLanguageTag] (
[ID]
)
GO
ALTER TABLE [dbo].[t_StringLanguageTag] ADD
CONSTRAINT [FK_StringLanguageTag_StringLanguage] FOREIGN KEY
(
[StringLanguageID]
) REFERENCES [dbo].[t_StringLanguage] (
[ID]
)
GO
ALTER TABLE [dbo].[t_StringLanguageVariant] ADD
CONSTRAINT [FK_StringLanguageVariant_StringLanguageVariantVersion_1] FOREIGN KEY
(
[CurrentStringLanguageVariantVersionID]
) REFERENCES [dbo].[t_StringLanguageVariantVersion] (
[ID]
),
CONSTRAINT [FK_StringLanguageVariant_StringLanguageVariantVersion_2] FOREIGN KEY
(
[ScratchStringLanguageVariantVersionID]
) REFERENCES [dbo].[t_StringLanguageVariantVersion] (
[ID]
),
CONSTRAINT [FK_t_StringLanguageVariant_t_StringLanguage] FOREIGN KEY
(
[StringLanguageID]
) REFERENCES [dbo].[t_StringLanguage] (
[ID]
),
CONSTRAINT [FK_t_StringLanguageVariant_t_StringVariant] FOREIGN KEY
(
[StringVariantID]
) REFERENCES [dbo].[t_StringVariant] (
[ID]
)
GO
ALTER TABLE [dbo].[t_StringLanguageVariantVersion] ADD
CONSTRAINT [FK_StringLanguageVariantVersion_StringImportSession] FOREIGN KEY
(
[StringImportSessionID]
) REFERENCES [dbo].[t_StringImportSession] (
[ID]
),
CONSTRAINT [FK_StringLanguageVariantVersion_StringLanguageVariant] FOREIGN KEY
(
[StringLanguageVariantID]
) REFERENCES [dbo].[t_StringLanguageVariant] (
[ID]
),
CONSTRAINT [FK_StringLanguageVariantVersion_StringLanguageVariantVersion] FOREIGN KEY
(
[PreviousStringLanguageVariantVersionID]
) REFERENCES [dbo].[t_StringLanguageVariantVersion] (
[ID]
)
GO
ALTER TABLE [dbo].[t_StringText] ADD
CONSTRAINT [FK_t_StringText_t_StringLanguageVariant] FOREIGN KEY
(
[StringLanguageVariantID]
) REFERENCES [dbo].[t_StringLanguageVariant] (
[ID]
),
CONSTRAINT [FK_t_StringText_t_StringVersion] FOREIGN KEY
(
[StringID],
[ModuleResRefVersionID]
) REFERENCES [dbo].[t_StringVersion] (
[StringID],
[ModuleResRefVersionID]
)
GO
ALTER TABLE [dbo].[t_StringVersion] ADD
CONSTRAINT [FK_t_StringVersion_t_ModuleResRefVersion] FOREIGN KEY
(
[ModuleResRefVersionID]
) REFERENCES [dbo].[t_ModuleResRefVersion] (
[ID]
),
CONSTRAINT [FK_t_StringVersion_t_ResRef] FOREIGN KEY
(
[OwnerResRefID]
) REFERENCES [dbo].[t_ResRef] (
[ID]
),
CONSTRAINT [FK_t_StringVersion_t_String] FOREIGN KEY
(
[StringID]
) REFERENCES [dbo].[t_String] (
[ID]
),
CONSTRAINT [FK_t_StringVersion_t_StringType] FOREIGN KEY
(
[StringTypeID]
) REFERENCES [dbo].[t_StringType] (
[ID]
)
GO
ALTER TABLE [dbo].[t_Trigger] ADD
CONSTRAINT [FK_t_Trigger_t_ModuleResRefVersion] FOREIGN KEY
(
[ModuleResRefVersionID]
) REFERENCES [dbo].[t_ModuleResRefVersion] (
[ID]
),
CONSTRAINT [FK_t_Trigger_t_ResRef] FOREIGN KEY
(
[ScriptResRefID]
) REFERENCES [dbo].[t_ResRef] (
[ID]
)
GO
ALTER TABLE [dbo].[t_VOScript] ADD
CONSTRAINT [FK_t_VOScript_t_ModuleResRef_Character] FOREIGN KEY
(
[CharacterModuleID],
[CharacterResRefID]
) REFERENCES [dbo].[t_ModuleResRef] (
[ModuleID],
[ResRefID]
),
CONSTRAINT [FK_t_VOScript_t_ModuleResRef_Resource] FOREIGN KEY
(
[ResourceModuleID],
[ResourceResRefID]
) REFERENCES [dbo].[t_ModuleResRef] (
[ModuleID],
[ResRefID]
)
GO
ALTER TABLE [dbo].[t_AreaAudioVolume] ADD
CONSTRAINT [FK_t_AreaAudioVolume_t_Area] FOREIGN KEY
(
[ModuleResRefVersionID]
) REFERENCES [dbo].[t_Area] (
[ModuleResRefVersionID]
)
GO
ALTER TABLE [dbo].[t_AreaAudioVolumeGeometry] ADD
CONSTRAINT [FK_t_AreaAudioVolumeGeometry_t_AreaAudioVolume] FOREIGN KEY
(
[ModuleResRefVersionID],
[AreaAudioVolumeInstanceID]
) REFERENCES [dbo].[t_AreaAudioVolume] (
[ModuleResRefVersionID],
[InstanceID]
)
GO
ALTER TABLE [dbo].[t_AreaAudioVolumeSound] ADD
CONSTRAINT [FK_t_AreaAudioVolumeSound_t_AreaAudioVolume] FOREIGN KEY
(
[ModuleResRefVersionID],
[AudioVolumeInstanceID]
) REFERENCES [dbo].[t_AreaAudioVolume] (
[ModuleResRefVersionID],
[InstanceID]
)
GO
ALTER TABLE [dbo].[t_AreaInstanceAssociations] ADD
CONSTRAINT [FK_t_AreaInstanceAssociations_t_Area] FOREIGN KEY
(
[ModuleResRefVersionID]
) REFERENCES [dbo].[t_Area] (
[ModuleResRefVersionID]
)
GO
ALTER TABLE [dbo].[t_AreaMusicVolumeGeometry] ADD
CONSTRAINT [FK_t_AreaMusicVolumeGeometry_t_AreaMusicVolume] FOREIGN KEY
(
[ModuleResRefVersionID],
[AreaMusicVolumeInstanceID]
) REFERENCES [dbo].[t_AreaMusicVolume] (
[ModuleResRefVersionID],
[InstanceID]
)
GO
ALTER TABLE [dbo].[t_AreaObjectGeometry] ADD
CONSTRAINT [FK_t_AreaObjectGeometry_t_AreaObject] FOREIGN KEY
(
[ModuleResRefVersionID],
[AreaObjectInstanceID]
) REFERENCES [dbo].[t_AreaObject] (
[ModuleResRefVersionID],
[InstanceID]
)
GO
ALTER TABLE [dbo].[t_AreaObjectVariable] ADD
CONSTRAINT [FK_t_AreaObjectVariable_t_AreaObject] FOREIGN KEY
(
[ModuleResRefVersionID],
[AreaObjectInstanceID]
) REFERENCES [dbo].[t_AreaObject] (
[ModuleResRefVersionID],
[InstanceID]
)
GO
ALTER TABLE [dbo].[t_AreaReverbVolume] ADD
CONSTRAINT [FK_t_AreaReverbVolume_t_Area] FOREIGN KEY
(
[ModuleResRefVersionID]
) REFERENCES [dbo].[t_Area] (
[ModuleResRefVersionID]
)
GO
ALTER TABLE [dbo].[t_AreaReverbVolumeGeometry] ADD
CONSTRAINT [FK_t_AreaReverbVolumeGeometry_t_AreaReverbVolume] FOREIGN KEY
(
[ModuleResRefVersionID],
[AreaReverbVolumeInstanceID]
) REFERENCES [dbo].[t_AreaReverbVolume] (
[ModuleResRefVersionID],
[InstanceID]
)
GO
ALTER TABLE [dbo].[t_AreaSound] ADD
CONSTRAINT [FK_t_AreaSound_t_Area] FOREIGN KEY
(
[ModuleResRefVersionID]
) REFERENCES [dbo].[t_Area] (
[ModuleResRefVersionID]
)
GO
ALTER TABLE [dbo].[t_AreaWaypoint] ADD
CONSTRAINT [FK_t_AreaWaypoint_t_Area] FOREIGN KEY
(
[ModuleResRefVersionID]
) REFERENCES [dbo].[t_Area] (
[ModuleResRefVersionID]
)
GO
ALTER TABLE [dbo].[t_ConversationAnimations] ADD
CONSTRAINT [FK_t_ConversationAnimations_t_ConversationLine] FOREIGN KEY
(
[ModuleResRefVersionID],
[LineIndex]
) REFERENCES [dbo].[t_ConversationLine] (
[ModuleResRefVersionID],
[Index]
)
GO
ALTER TABLE [dbo].[t_CreatureAbility] ADD
CONSTRAINT [FK_t_CreatureAbility_t_Creature] FOREIGN KEY
(
[ModuleResRefVersionID]
) REFERENCES [dbo].[t_Creature] (
[ModuleResRefVersionID]
)
GO
ALTER TABLE [dbo].[t_CutsceneActionFBEParameter] ADD
CONSTRAINT [FK_t_CutsceneActionFBEParameter_t_CutsceneAction] FOREIGN KEY
(
[ModuleResRefVersionID],
[CutsceneObjectInstanceID],
[CutsceneTrackInstanceID],
[CutsceneActionInstanceID]
) REFERENCES [dbo].[t_CutsceneAction] (
[ModuleResRefVersionID],
[CutsceneObjectInstanceID],
[CutsceneTrackInstanceID],
[InstanceID]
)
GO
ALTER TABLE [dbo].[t_CutsceneActionTransition] ADD
CONSTRAINT [FK_t_CutsceneActionTransition_t_CutsceneAction] FOREIGN KEY
(
[ModuleResRefVersionID],
[CutsceneObjectInstanceID],
[CutsceneTrackInstanceIDA],
[CutsceneActionInstanceIDA]
) REFERENCES [dbo].[t_CutsceneAction] (
[ModuleResRefVersionID],
[CutsceneObjectInstanceID],
[CutsceneTrackInstanceID],
[InstanceID]
),
CONSTRAINT [FK_t_CutsceneActionTransition_t_CutsceneAction1] FOREIGN KEY
(
[ModuleResRefVersionID],
[CutsceneObjectInstanceID],
[CutsceneTrackInstanceIDB],
[CutsceneActionInstanceIDB]
) REFERENCES [dbo].[t_CutsceneAction] (
[ModuleResRefVersionID],
[CutsceneObjectInstanceID],
[CutsceneTrackInstanceID],
[InstanceID]
)
GO
ALTER TABLE [dbo].[t_ItemProperty] ADD
CONSTRAINT [FK_t_ItemProperty_t_Item] FOREIGN KEY
(
[ModuleResRefVersionID]
) REFERENCES [dbo].[t_Item] (
[ModuleResRefVersionID]
)
GO
ALTER TABLE [dbo].[t_MapPin] ADD
CONSTRAINT [FK_t_MapPin_t_Map] FOREIGN KEY
(
[ModuleResRefVersionID]
) REFERENCES [dbo].[t_Map] (
[ModuleResRefVersionID]
)
GO
ALTER TABLE [dbo].[t_MapTrail] ADD
CONSTRAINT [FK_t_MapTrail_t_Map] FOREIGN KEY
(
[ModuleResRefVersionID]
) REFERENCES [dbo].[t_Map] (
[ModuleResRefVersionID]
)
GO
ALTER TABLE [dbo].[t_MapTrailPoint] ADD
CONSTRAINT [FK_t_MapTrailPoint_t_MapTrail] FOREIGN KEY
(
[ModuleResRefVersionID],
[MapTrailInstanceID]
) REFERENCES [dbo].[t_MapTrail] (
[ModuleResRefVersionID],
[InstanceID]
)
GO
ALTER TABLE [dbo].[t_MerchantRestrictedItem] ADD
CONSTRAINT [FK_t_MerchantRestrictedItem_t_Merchant] FOREIGN KEY
(
[ModuleResRefVersionID]
) REFERENCES [dbo].[t_Merchant] (
[ModuleResRefVersionID]
)
GO
ALTER TABLE [dbo].[t_PlotAssist] ADD
CONSTRAINT [FK_t_PlotAssist_t_PlotStatus] FOREIGN KEY
(
[ModuleResRefVersionID],
[Flag]
) REFERENCES [dbo].[t_PlotStatus] (
[ModuleResRefVersionID],
[Flag]
)
GO
ALTER TABLE [dbo].[t_StageFBEParameter] ADD
CONSTRAINT [FK_t_StageFBEParameter_t_StageObject] FOREIGN KEY
(
[ModuleResRefVersionID],
[StageObjectInstanceID]
) REFERENCES [dbo].[t_StageObject] (
[ModuleResRefVersionID],
[InstanceID]
)
GO
ALTER TABLE [dbo].[t_StageObjectReference] ADD
CONSTRAINT [FK_t_StageObjectReference_t_StageObject] FOREIGN KEY
(
[ModuleResRefVersionID],
[SourceInstanceID]
) REFERENCES [dbo].[t_StageObject] (
[ModuleResRefVersionID],
[InstanceID]
)
GO
ALTER TABLE [dbo].[t_VOSessionInstanceVersion] ADD
CONSTRAINT [FK_t_VOSessionInstanceVersion_t_VOScriptInstance] FOREIGN KEY
(
[VOScriptInstanceID]
) REFERENCES [dbo].[t_VOScriptInstance] (
[ID]
),
CONSTRAINT [FK_t_VOSessionInstanceVersion_t_VOSession] FOREIGN KEY
(
[VOSessionID]
) REFERENCES [dbo].[t_VOSession] (
[ID]
),
CONSTRAINT [FK_t_VOSessionInstanceVersion_t_VOSessionInstance] FOREIGN KEY
(
[VOSessionInstanceID]
) REFERENCES [dbo].[t_VOSessionInstance] (
[ID]
)
GO
ALTER TABLE [dbo].[t_VOSessionVersion] ADD
CONSTRAINT [FK_t_VOSessionVersion_t_VOSession] FOREIGN KEY
(
[VOSessionID]
) REFERENCES [dbo].[t_VOSession] (
[ID]
)
GO
ALTER TABLE [dbo].[t_Variable] ADD
CONSTRAINT [FK_t_Variable_t_ModuleResRefVersion] FOREIGN KEY
(
[ModuleResRefVersionID]
) REFERENCES [dbo].[t_ModuleResRefVersion] (
[ID]
)
GO
ALTER TABLE [dbo].[t_AreaList] ADD
CONSTRAINT [FK_t_AreaList_t_ModuleResRefVersion] FOREIGN KEY
(
[ModuleResRefVersionID]
) REFERENCES [dbo].[t_ModuleResRefVersion] (
[ID]
)
GO
ALTER TABLE [dbo].[t_AreaMusicVolume] ADD
CONSTRAINT [FK_t_AreaMusicVolume_t_Area] FOREIGN KEY
(
[ModuleResRefVersionID]
) REFERENCES [dbo].[t_Area] (
[ModuleResRefVersionID]
),
CONSTRAINT [FK_t_AreaMusicVolume_t_ResRef] FOREIGN KEY
(
[ScriptResRefID]
) REFERENCES [dbo].[t_ResRef] (
[ID]
)
GO
ALTER TABLE [dbo].[t_AreaObject] ADD
CONSTRAINT [FK_t_AreaObject_t_Area] FOREIGN KEY
(
[ModuleResRefVersionID]
) REFERENCES [dbo].[t_Area] (
[ModuleResRefVersionID]
),
CONSTRAINT [FK_t_AreaObject_t_ResRef] FOREIGN KEY
(
[ObjectResRefID]
) REFERENCES [dbo].[t_ResRef] (
[ID]
)
GO
ALTER TABLE [dbo].[t_AssociatedResource] ADD
CONSTRAINT [FK_t_AssociatedResource_t_ModuleResRefVersion] FOREIGN KEY
(
[ModuleResRefVersionID]
) REFERENCES [dbo].[t_ModuleResRefVersion] (
[ID]
),
CONSTRAINT [FK_t_AssociatedResource_t_ResRef] FOREIGN KEY
(
[ResRefID]
) REFERENCES [dbo].[t_ResRef] (
[ID]
)
GO
ALTER TABLE [dbo].[t_Character] ADD
CONSTRAINT [FK_t_Character_t_ModuleResRefVersion] FOREIGN KEY
(
[ModuleResRefVersionID]
) REFERENCES [dbo].[t_ModuleResRefVersion] (
[ID]
),
CONSTRAINT [FK_t_Character_t_ResRef] FOREIGN KEY
(
[SoundSetResRefID]
) REFERENCES [dbo].[t_ResRef] (
[ID]
),
CONSTRAINT [FK_t_Character_t_ResRef2] FOREIGN KEY
(
[RoleResRefID]
) REFERENCES [dbo].[t_ResRef] (
[ID]
)
GO
ALTER TABLE [dbo].[t_ConversationCinematics] ADD
CONSTRAINT [FK_t_ConversationCinematics_t_Conversation] FOREIGN KEY
(
[ModuleResRefVersionID]
) REFERENCES [dbo].[t_Conversation] (
[ModuleResRefVersionID]
),
CONSTRAINT [FK_t_ConversationCinematics_t_ResRef] FOREIGN KEY
(
[FunctionalShotResRefID]
) REFERENCES [dbo].[t_ResRef] (
[ID]
)
GO
ALTER TABLE [dbo].[t_ConversationTagMap] ADD
CONSTRAINT [FK_t_ConversationTagMap_t_ModuleResRefVersion] FOREIGN KEY
(
[ModuleResRefVersionID]
) REFERENCES [dbo].[t_ModuleResRefVersion] (
[ID]
),
CONSTRAINT [FK_t_ConversationTagMap_t_ResRef] FOREIGN KEY
(
[ValueResRefID]
) REFERENCES [dbo].[t_ResRef] (
[ID]
)
GO
ALTER TABLE [dbo].[t_ConversationTransition] ADD
CONSTRAINT [FK_t_ConversationTransit_t_Conversation] FOREIGN KEY
(
[ModuleResRefVersionID]
) REFERENCES [dbo].[t_Conversation] (
[ModuleResRefVersionID]
)
GO
ALTER TABLE [dbo].[t_Inventory] ADD
CONSTRAINT [FK_t_Inventory_t_ModuleResRefVersion] FOREIGN KEY
(
[ModuleResRefVersionID]
) REFERENCES [dbo].[t_ModuleResRefVersion] (
[ID]
),
CONSTRAINT [FK_t_Inventory_t_ResRef] FOREIGN KEY
(
[ItemResRefID]
) REFERENCES [dbo].[t_ResRef] (
[ID]
)
GO
ALTER TABLE [dbo].[t_Map] ADD
CONSTRAINT [FK_t_Map_t_ModuleResRefVersion] FOREIGN KEY
(
[ModuleResRefVersionID]
) REFERENCES [dbo].[t_ModuleResRefVersion] (
[ID]
)
GO
ALTER TABLE [dbo].[t_Role] ADD
CONSTRAINT [FK_t_Role_t_ModuleResRefVersion] FOREIGN KEY
(
[ModuleResRefVersionID]
) REFERENCES [dbo].[t_ModuleResRefVersion] (
[ID]
)
GO
ALTER TABLE [dbo].[t_StageObject] ADD
CONSTRAINT [FK_t_StageObject_t_Stage] FOREIGN KEY
(
[ModuleResRefVersionID]
) REFERENCES [dbo].[t_Stage] (
[ModuleResRefVersionID]
)
GO
ALTER TABLE [dbo].[t_StringLanguageVariantText] ADD
CONSTRAINT [FK_StringLanguageVariantText_StringImportSession] FOREIGN KEY
(
[StringImportSessionID]
) REFERENCES [dbo].[t_StringImportSession] (
[ID]
),
CONSTRAINT [FK_StringLanguageVariantText_StringLanguageVariantVersion] FOREIGN KEY
(
[StringLanguageVariantVersionID]
) REFERENCES [dbo].[t_StringLanguageVariantVersion] (
[ID]
)
GO
ALTER TABLE [dbo].[t_VOScriptBatchPrint] ADD
CONSTRAINT [FK_t_VOScriptBatchPrint_t_VOScript] FOREIGN KEY
(
[VOScriptID]
) REFERENCES [dbo].[t_VOScript] (
[ID]
),
CONSTRAINT [FK_t_VOScriptBatchPrint_t_VOScriptInstance] FOREIGN KEY
(
[VOScriptInstanceID]
) REFERENCES [dbo].[t_VOScriptInstance] (
[ID]
),
CONSTRAINT [FK_t_VOScriptBatchPrint_t_VOScriptInstanceString] FOREIGN KEY
(
[VOScriptInstanceStringID]
) REFERENCES [dbo].[t_VOScriptInstanceString] (
[ID]
)
GO
ALTER TABLE [dbo].[t_VOScriptInstance] ADD
CONSTRAINT [FK_t_VOScriptInstance_t_StringLanguage] FOREIGN KEY
(
[StringLanguageID]
) REFERENCES [dbo].[t_StringLanguage] (
[ID]
),
CONSTRAINT [FK_t_VOScriptInstance_t_VOScript] FOREIGN KEY
(
[VOScriptID]
) REFERENCES [dbo].[t_VOScript] (
[ID]
)
GO
ALTER TABLE [dbo].[t_VOScriptInstanceString] ADD
CONSTRAINT [FK_t_VOScriptInstanceString_t_StringLanguageVariantVersion] FOREIGN KEY
(
[StringLanguageVariantVersionID]
) REFERENCES [dbo].[t_StringLanguageVariantVersion] (
[ID]
),
CONSTRAINT [FK_t_VOScriptInstanceString_t_StringText] FOREIGN KEY
(
[StringID],
[ModuleResRefVersionID],
[StringLanguageVariantID]
) REFERENCES [dbo].[t_StringText] (
[StringID],
[ModuleResRefVersionID],
[StringLanguageVariantID]
),
CONSTRAINT [FK_t_VOScriptInstanceString_t_VOScriptInstance] FOREIGN KEY
(
[VOScriptInstanceID]
) REFERENCES [dbo].[t_VOScriptInstance] (
[ID]
),
CONSTRAINT [FK_t_VOScriptInstanceString_t_VOScriptInstanceString] FOREIGN KEY
(
[PreviousVOScriptInstanceStringID]
) REFERENCES [dbo].[t_VOScriptInstanceString] (
[ID]
)
GO
ALTER TABLE [dbo].[t_VOScriptInstanceStringStatus] ADD
CONSTRAINT [FK_t_VOScriptInstanceStringStatus_t_VOScriptInstanceString] FOREIGN KEY
(
[VOScriptInstanceStringID]
) REFERENCES [dbo].[t_VOScriptInstanceString] (
[ID]
)
GO
ALTER TABLE [dbo].[t_VOScriptStringRevision] ADD
CONSTRAINT [FK_t_VOScriptStringRevision_t_StringLanguageVariant] FOREIGN KEY
(
[StringLanguageID],
[StringVariantID]
) REFERENCES [dbo].[t_StringLanguageVariant] (
[StringLanguageID],
[StringVariantID]
)
GO
ALTER TABLE [dbo].[t_VOSession] ADD
CONSTRAINT [FK_t_VOSession_t_StringLanguage] FOREIGN KEY
(
[LanguageID]
) REFERENCES [dbo].[t_StringLanguage] (
[ID]
)
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE VIEW dbo.v_ModuleTree
AS
select moduleid, associatedmoduleid, max(level) as level
from (
select distinct ma1.childmoduleid ModuleID, ma2.childmoduleid AssociatedModuleID, ma2.Level
from t_moduleassociation ma1
join t_moduleassociation ma2 on ma1.fullpath like ma2.fullpath + '%'
) s1
group by moduleid, associatedmoduleid
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
GRANT SELECT ON [dbo].[v_ModuleTree] TO [bw_db_read]
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
------------------------------------------------------------------------
-- VIEW: v_ConversationLineSpeakerTag
------------------------------------------------------------------------
-- Owned By: Chris Christou
-- Created On: February 14, 2007
-- Description: Lists all lines of conversation and their speaker
-- tags. This is used to resolve the lines that are blank and
-- require a lookup on the DefaultNPCSpeaker field.
--
-- NOTE: If player lines EVER stop having a tag of 'PLAYER', this
-- View will be incorrect for player lines and will require fixing.
------------------------------------------------------------------------
CREATE VIEW [dbo].[v_ConversationLineSpeakerTag]
AS
SELECT cl.[ModuleResRefVersionID], cl.[TextStringID],
CASE cl.[Speaker]
WHEN '' THEN c.[DefaultNPCSpeaker]
ELSE cl.[Speaker] END AS [Speaker]
FROM t_ConversationLine cl
JOIN t_Conversation c
ON cl.[ModuleResRefVersionID] = c.[ModuleResRefVersionID]
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
GRANT SELECT ON [dbo].[v_ConversationLineSpeakerTag] TO [bw_db_read]
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE VIEW dbo.v_StringVersionText
AS
select s1.ID, s1.StringTableID, sv.ModuleResRefVersionID, sv.StringTypeID,
sv.OwnerresRefID, st.StringLanguageVariantID, st.Text, st.Description
FROM t_String s1
join t_StringVersion sv on s1.id = sv.stringid
join t_StringText st on sv.stringid = st.stringid
and sv.moduleresrefversionid = st.moduleresrefversionid
and st.stringlanguagevariantid = 1
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
GRANT SELECT ON [dbo].[v_StringVersionText] TO [bw_db_read]
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
------------------------------------------------------------------------
-- VIEW: v_StringsRequiringTranslation
------------------------------------------------------------------------
-- Owned By: Chris Christou
-- Created On: September 20, 2006
-- Description: Shows all strings belonging to current versions
-- of resources that need to be translated.
-- This query has to search for strings that have never been
-- exported, as well as strings that have been updated since
-- the last time they were exported.
------------------------------------------------------------------------
CREATE VIEW [dbo].[v_StringsRequiringTranslation]
AS
SELECT t.[StringID],
t.[ModuleResRefVersionID],
CASE
WHEN t.[LastMajorUpdateOn] > ISNULL(seh.[CompareDate], '1/1/2000')
THEN 1
ELSE 0
END [IsMajorChange],
CASE
WHEN seh.[StringID] IS NULL
THEN 1
ELSE 0
END [IsNew]
FROM t_StringText t
JOIN t_ModuleResRefVersion mrv
ON t.[ModuleResRefVersionID] = mrv.[ID]
LEFT OUTER JOIN t_StringExportHistory seh
ON t.[StringID] = seh.[StringID]
AND seh.[Status] = 'A'
WHERE mrv.[Status] = 'C' -- Ensures that we only care about current version strings
AND t.[LastMinorUpdateOn] > ISNULL(seh.[CompareDate], '1/1/2000') -- Ensures that strings never exported, and strings updated since last export are included
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
GRANT SELECT ON [dbo].[v_StringsRequiringTranslation] TO [bw_db_read]
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
------------------------------------------------------------------------
-- VIEW: v_StringsRequiringTranslationByResourceVersion
------------------------------------------------------------------------
-- Owned By: Chris Christou
-- Created On: September 20, 2006
-- Description: Shows all strings belonging to all versions
-- of resources that need to be translated.
-- This query has to search for strings that have never been
-- exported, as well as strings that have been updated since
-- the last time they were exported.
-- NOTE: We want this view to show all versions because
-- there are times where this list is checked against a
-- particular version. When a string is exported, all
-- prior versions are intentionally no longer shown in this view.
------------------------------------------------------------------------
CREATE VIEW [dbo].[v_StringsRequiringTranslationByResourceVersion]
AS
SELECT mrv.[ModuleID], mrv.[ResRefID], t.[ModuleResRefVersionID],
t.[StringID],
CASE
WHEN t.[LastMajorUpdateOn] > ISNULL(seh.[CompareDate], '1/1/2000')
THEN 1
ELSE 0
END [IsMajorChange],
CASE
WHEN seh.[ID] IS NULL
THEN 1
ELSE 0
END [IsNew]
FROM t_StringText t
JOIN t_ModuleResRefVersion mrv
ON t.[ModuleResRefVersionID] = mrv.[ID]
LEFT OUTER JOIN t_StringExportHistory seh
ON t.[StringID] = seh.[StringID]
AND seh.[Status] = 'A'
WHERE t.[LastMinorUpdateOn] > ISNULL(seh.[CompareDate], '1/1/2000') -- Ensures that strings never exported, and strings updated since last export are included
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
GRANT SELECT ON [dbo].[v_StringsRequiringTranslationByResourceVersion] TO [bw_db_read]
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE VIEW dbo.v_UserResourceInfo
AS
select
CASE isnull(mrrv2.id,-1) when -1
then mrrv1.id
else case mrrv2.username when suser_sname()
then mrrv2.id
else mrrv1.id
end
end as ModuleResRefVersionID,
mrr.moduleid as ModuleID, mrr.ResRefID as ResRefID,
CASE isnull(mrrv2.id,-1) when -1
then mrrv1.name
else case mrrv2.username when suser_sname()
then mrrv2.name
else mrrv1.name
end
end as ResRefName,
CASE isnull(mrrv2.id,-1) when -1
then mrrv1.folder
else case mrrv2.username when suser_sname()
then mrrv2.folder
else mrrv1.folder
end
end as Folder,
mrr.createdby as CreatedBy, mrr.createdon as CreatedOn,
case isnull(mrrv2.id,-1) when -1 then 0 else 1 end as IsCheckedOut,
mrrv2.username as CheckedOutBy, mrrv2.date as CheckedOutOn,
mrrv1.username as LastCheckInBy, mrrv1.date as LastCheckInOn,
mrrv1.comment as Comment
from t_moduleresref mrr
join t_moduleresrefversion mrrv1 on mrr.currentmoduleresrefversionid = mrrv1.id
left outer join t_moduleresrefversion mrrv2 on mrr.scratchmoduleresrefversionid = mrrv2.id
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
GRANT SELECT ON [dbo].[v_UserResourceInfo] TO [bw_db_read]
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
------------------------------------------------------------------------
-- VIEW: v_VOScriptStringLanguageVariant
------------------------------------------------------------------------
-- Owned By: Chris Christou
-- Created On: February 21, 2007
-- Description: Displays the Language ID and Variant ID that each
-- VOScriptInstanceString belong to. This is meant to be a
-- convenience lookup for use with several stored procedures.
--
------------------------------------------------------------------------
CREATE VIEW [dbo].[v_VOScriptStringLanguageVariant]
AS
SELECT
vosis.[ID] as [VOScriptInstanceStringID],
vosi.[StringLanguageID],
vosis.[StringVariantID]
FROM t_VOScriptInstanceString vosis
JOIN t_VOScriptInstance vosi
ON vosis.[VOScriptInstanceID] = vosi.[ID]
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
GRANT SELECT ON [dbo].[v_VOScriptStringLanguageVariant] TO [bw_db_read]
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE PROCEDURE [dbo].[bsp_CreateNewResourceVersion]
@a_iCurrentVersionID int,
@a_iNewVersionID int,
@a_sTableName varchar(128)
AS
declare @sql nvarchar(4000)
set @sql = ''
declare @columns nvarchar(4000)
set @columns = ''
SELECT @columns = CASE @columns
WHEN '' THEN '[' + sc.name + ']'
ELSE @columns + ', [' + sc.name + ']'
END
from sysobjects so join syscolumns sc on so.id = sc.id
where lower(so.name) = lower(@a_sTableName)
and lower(sc.name) <> 'moduleresrefversionid'
order by colid
if (@@ERROR <> 0) GOTO ON_ERROR
set @sql = 'insert into ' + @a_sTableName + '(ModuleResRefVersionID, ' + @columns + ') ' +
' select ' + convert(varchar(10),@a_iNewVersionID) + ', ' + @columns + ' from ' + @a_sTableName +
' where moduleresrefversionid = ' + convert(varchar(10),@a_iCurrentVersionID)
exec sp_executesql @sql
if (@@ERROR <> 0) GOTO ON_ERROR
return 0
---------------------------------------------------------------------
ON_ERROR:
---------------------------------------------------------------------
return @@ERROR
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
GRANT EXECUTE ON [dbo].[bsp_CreateNewResourceVersion] TO [bw_db_write]
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
------------------------------------------------------------------------
-- STORED PROCEDURE: bsp_GetLocalizationStatisticsVerbose
------------------------------------------------------------------------
-- Owned By: Chris Mihalick
-- Created On: January 31, 2008
-- Description: Loads Localization Statistics
-- Parameters:
-- @a_bCountMajorChanges - set to true if you want to get stats
-- for Major Text Changes (strings that are being re-translated)
-- @a_bCountMinorChanges - set to true if you want to get stats
-- for Minor Text Changes (strings that are being re-translated)
-- @a_bGetResourceCounts:
-- o 1 - include stats by resource in the result set
-- o 0 - exclude stats by resource in the result set
-- @a_bGetStringTypeCounts:
-- o 1 - include stats by string type in the result set
-- o 0 - exclude stats by string type in the result set
--
-- Returns:
-- 0 on success, non-zero on error (error-code @@ERROR is returned)
------------------------------------------------------------------------
CREATE PROCEDURE [dbo].[bsp_GetLocalizationStatisticsVerbose]
@a_bCountMajorChanges bit,
@a_bCountMinorChanges bit,
@a_bGetResourceCounts bit,
@a_bGetStringTypeCounts bit
AS
SET NOCOUNT ON
DECLARE @iError int
-- Create a temp table to store the stored procedure results
CREATE TABLE #Stats
(
ModuleID INT,
OwnerModuleID INT,
ResRefID INT,
ResType VARCHAR(4),
StringTypeID INT,
IsResource BIT,
NewWordsReq INT,
UpdWordsReq INT,
Words INT,
NewLinesReq INT,
UpdLinesReq INT,
Lines INT,
NewNonBlankLinesReq INT,
UpdNonBlankLinesReq INT,
NonBlankLines INT
)
-- Run the stored procedure and store the results in the temp table
INSERT #Stats
EXEC [dbo].[bsp_GetLocalizationStatistics]
@a_bCountMajorChanges, @a_bCountMinorChanges, @a_bGetResourceCounts, @a_bGetStringTypeCounts
-- Return the stats
SELECT
S.[ModuleID],
S.[OwnerModuleID],
S.[ResRefID],
S.[ResType],
S.[StringTypeID],
S.[IsResource],
S.[NewWordsReq],
S.[UpdWordsReq],
S.[Words],
S.[NewLinesReq],
S.[UpdLinesReq],
S.[Lines],
S.[NewNonBlankLinesReq],
S.[UpdNonBlankLinesReq],
S.[NonBlankLines],
m.[Name] as [Module],
mOwner.[Name] as [OwnerModule],
MRRV.[Folder],
MRRV.[Name] as [Name]
FROM #Stats S
JOIN t_ModuleResRef MRR
ON S.[ModuleID] = MRR.[ModuleID]
AND S.[ResRefID] = MRR.[ResRefID]
JOIN t_ModuleResRefVersion MRRV
ON MRR.[CurrentModuleResRefVersionID] = MRRV.[ID]
JOIN t_Module m
ON mrr.[ModuleID] = m.[ID]
JOIN t_Module mOwner
ON s.[OwnerModuleID] = mOwner.[ID]
WHERE @a_bGetResourceCounts = 1
UNION ALL
SELECT
S.[ModuleID],
S.[OwnerModuleID],
S.[ResRefID],
S.[ResType],
S.[StringTypeID],
S.[IsResource],
S.[NewWordsReq],
S.[UpdWordsReq],
S.[Words],
S.[NewLinesReq],
S.[UpdLinesReq],
S.[Lines],
S.[NewNonBlankLinesReq],
S.[UpdNonBlankLinesReq],
S.[NonBlankLines],
m.[Name] as [Module],
mOwner.[Name] as [OwnerModule],
'' AS [Folder],
ST.[Name] as [Name]
FROM #Stats S
JOIN t_StringType ST
ON S.[StringTypeID] = ST.[ID]
JOIN t_Module m
ON S.[ModuleID] = m.[ID]
JOIN t_Module mOwner
ON s.[OwnerModuleID] = mOwner.[ID]
WHERE @a_bGetStringTypeCounts = 1
ORDER BY [Module], [Folder], [Name]
-- Drop the temp table
DROP TABLE #Stats
SELECT @iError = @@ERROR
if (@iError <> 0) GOTO ON_ERROR
SET NOCOUNT OFF
return 0
---------------------------------------------------------------------
ON_ERROR:
---------------------------------------------------------------------
SET NOCOUNT OFF
return @iError
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
GRANT EXECUTE ON [dbo].[bsp_GetLocalizationStatisticsVerbose] TO [bw_db_read]
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
------------------------------------------------------------------------
-- STORED PROCEDURE: bsp_CreateStringExportLabel
------------------------------------------------------------------------
-- Owned By: Chris Christou
-- Created On: September 29, 2006
-- Description: Creates a new Export Label and returns the
-- resultant ID
------------------------------------------------------------------------
CREATE PROCEDURE [dbo].[bsp_CreateStringExportLabel]
@a_sName text,
@a_sComment ntext,
@a_iExportContent int,
@a_riNewSessionID int OUTPUT
AS
DECLARE @iError int
BEGIN TRANSACTION tranCreateStringExportLabel
-- Create a new ExpoerLabel Record. Get the new ID
INSERT INTO t_StringExportLabel
([Name], [Comment], [Status], [ExportContent])
VALUES (@a_sName, @a_sComment, 'N', @a_iExportContent)
SELECT @iError = @@ERROR, @a_riNewSessionID = SCOPE_IDENTITY()
if (@iError <> 0) GOTO ON_ERROR
COMMIT TRANSACTION tranCreateStringExportLabel
return 0
---------------------------------------------------------------------
ON_ERROR:
---------------------------------------------------------------------
ROLLBACK TRANSACTION
return @iError
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
GRANT EXECUTE ON [dbo].[bsp_CreateStringExportLabel] TO [bw_db_write]
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
------------------------------------------------------------------------
-- STORED PROCEDURE: bsp_CreateStringImportSession
------------------------------------------------------------------------
-- Owned By: Chris Christou
-- Created On: September 21, 2006
-- Description: Creates a new ImportSession and returns the
-- resultant ID
------------------------------------------------------------------------
CREATE PROCEDURE [dbo].[bsp_CreateStringImportSession]
@a_sComment ntext,
@a_riNewSessionID int OUTPUT
AS
DECLARE @iError int
BEGIN TRANSACTION tranCreateStringImportSession
-- Create a new Session Record. Get the new ID
INSERT INTO t_StringImportSession
([Status], [Comment])
VALUES ('N', @a_sComment)
SELECT @iError = @@ERROR, @a_riNewSessionID = SCOPE_IDENTITY()
if (@iError <> 0) GOTO ON_ERROR
COMMIT TRANSACTION tranCreateStringImportSession
return 0
---------------------------------------------------------------------
ON_ERROR:
---------------------------------------------------------------------
ROLLBACK TRANSACTION
return @iError
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
GRANT EXECUTE ON [dbo].[bsp_CreateStringImportSession] TO [bw_db_write]
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
------------------------------------------------------------------------
-- Stored Proc: bsp_CreateVOSessionInstance
------------------------------------------------------------------------
-- Owned By: Chris Mihalick
-- Created On: May 15, 2008
-- Description: Creates a VO Session Instance, returns the ID
--
-- Parameters
-- @a_iNewVOSessionInstanceID - OUT - ID of created VO Session
--
-- Returns
-- o 0 = success
-- o else = error code
--
------------------------------------------------------------------------
CREATE PROCEDURE [dbo].[bsp_CreateVOSessionInstance]
@a_iNewVOSessionInstanceID int OUTPUT
AS
SET NOCOUNT ON
DECLARE @iError int
BEGIN TRANSACTION tran_CreateVOSessionInstance
INSERT t_VOSessionInstance ([Unused]) VALUES (1)
SELECT @a_iNewVOSessionInstanceID = SCOPE_IDENTITY() , @iError = @@ERROR
IF (@iError <> 0) GOTO ON_ERROR
COMMIT TRANSACTION tran_CreateVOSessionInstance
SET NOCOUNT OFF
RETURN 0
------------------------------------------------------------------------
ON_ERROR:
------------------------------------------------------------------------
ROLLBACK TRANSACTION
SET @a_iNewVOSessionInstanceID = -1
SET NOCOUNT OFF
RETURN @iError
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
GRANT EXECUTE ON [dbo].[bsp_CreateVOSessionInstance] TO [bw_db_write]
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
------------------------------------------------------------------------
-- Stored Proc: bsp_GetResourceLineCharacters
------------------------------------------------------------------------
-- Owned By: Chris Christou
-- Created On: February 28, 2007
-- Description: For a resource, returns the character owner of each
-- line, where available. Lines that do not resolve to characters
-- will not be returned.
-- Parameters
-- a_iModuleResRefVersionID - IN
-- - Version of ModResRef to look up the line owners for.
-- Currently only conversation types are supported
--
------------------------------------------------------------------------
CREATE PROCEDURE [dbo].[bsp_GetResourceLineCharacters]
@a_iModuleResRefVersionID int
AS
SET NOCOUNT ON
DECLARE @iError int
BEGIN TRANSACTION tranResourceLineCharacters
------------------------------------------------------------------------
-- Map the resource lines to Characters
------------------------------------------------------------------------
-- First ensure that our table space is clear
DELETE FROM t_VOScriptLineCharacterInternal WHERE [SPID] = @@SPID
SELECT @iError = @@ERROR
IF (@iError <> 0) GOTO ON_ERROR
-- Then do the mapping
EXEC @iError = [dbo].[bsp_DetermineVOScriptLineCharacters] NULL, @a_iModuleResRefVersionID
IF (@iError <> 0) GOTO ON_ERROR
-- return the data
SELECT [StringID], [CharacterModuleID], [CharacterResRefID]
FROM t_VOScriptLineCharacterInternal
WHERE [SPID] = @@SPID
AND [CharacterModuleID] IS NOT NULL
AND [CharacterResRefID] IS NOT NULL
SELECT @iError = @@ERROR
IF (@iError <> 0) GOTO ON_ERROR
-- Clear our temp table space
DELETE FROM t_VOScriptLineCharacterInternal WHERE [SPID] = @@SPID
SELECT @iError = @@ERROR
IF (@iError <> 0) GOTO ON_ERROR
COMMIT TRANSACTION tranResourceLineCharacters
SET NOCOUNT OFF
return 0
------------------------------------------------------------------------
ON_ERROR:
------------------------------------------------------------------------
ROLLBACK TRANSACTION
SET NOCOUNT OFF
return @iError
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
GRANT EXECUTE ON [dbo].[bsp_GetResourceLineCharacters] TO [bw_db_write]
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
------------------------------------------------------------------------
-- STORED PROCEDURE: bsp_SetCurrentStringImportSession
------------------------------------------------------------------------
-- Owned By: Chris Christou
-- Created On: September 21, 2006
-- Description: Marks the indicated session 'C'urrent
-- and sets the other 'C'urrent record as 'I'mport (ie: not Undo)
------------------------------------------------------------------------
CREATE PROCEDURE [dbo].[bsp_SetCurrentStringImportSession]
@a_iStringImportSessionID int
AS
DECLARE @iError int
BEGIN TRANSACTION tranSetCurrentStrImportSession
------------------------------------------------------------------------
-- Check that given Session Exists
------------------------------------------------------------------------
IF NOT EXISTS (SELECT 1 FROM t_StringImportSession WHERE [ID] = @a_iStringImportSessionID)
BEGIN
SET @iError = -1
GOTO ON_ERROR
END
------------------------------------------------------------------------
-- Set any 'C'urrent records to 'H'istory
------------------------------------------------------------------------
UPDATE t_StringImportSession
SET [Status] = 'H'
WHERE [Status] = 'C'
SELECT @iError = @@ERROR
if (@iError <> 0) GOTO ON_ERROR
------------------------------------------------------------------------
-- Set the desired record to 'C'urrent
------------------------------------------------------------------------
UPDATE t_StringImportSession
SET [Status] = 'C'
WHERE [ID] = @a_iStringImportSessionID
SELECT @iError = @@ERROR
if (@iError <> 0) GOTO ON_ERROR
COMMIT TRANSACTION tranSetCurrentStrImportSession
return 0
---------------------------------------------------------------------
ON_ERROR:
---------------------------------------------------------------------
ROLLBACK TRANSACTION
return @iError
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
GRANT EXECUTE ON [dbo].[bsp_SetCurrentStringImportSession] TO [bw_db_write]
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE PROCEDURE [dbo].[bsp_AddStringTable]
@a_iModuleID int,
@a_sName varchar(128),
@a_iStringTableID int OUTPUT
AS
DECLARE @RC int
declare @iResRefID int
-- Start the main transaction
BEGIN TRANSACTION tran_bsp_AddStringTable
INSERT INTO t_StringTable ([Name]) values (@a_sName)
IF (@@ERROR <> 0) GOTO ON_ERROR
SET @a_iStringTableID = SCOPE_IDENTITY()
IF (@a_iModuleID > 0)
BEGIN
UPDATE t_Module
SET StringTableID = @a_iStringTableID
WHERE id = @a_iModuleID
IF (@@ERROR <> 0) GOTO ON_ERROR
END
COMMIT TRANSACTION tran_bsp_AddStringTable
return 0
---------------------------------------------------------------------
ON_ERROR:
---------------------------------------------------------------------
set @RC = @@ERROR
ROLLBACK TRANSACTION
return @RC
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
GRANT EXECUTE ON [dbo].[bsp_AddStringTable] TO [bw_db_write]
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE PROCEDURE [dbo].[bsp_GetNextStringID]
@a_iModuleID int,
@a_iNewID INT OUTPUT
AS
declare @l_iError int
declare @l_iInitialTransactionCount int
declare @l_iRangeBegin int
declare @l_iRangeEnd int
set @l_iError = 0
-- Start the main transaction
set @l_iInitialTransactionCount = @@TranCount
BEGIN TRANSACTION tran_bsp_GetNextStringID
-- Find the start / end range for the current module
SELECT @l_iRangeBegin = [StringIDBegin], @l_iRangeEnd = [StringIDEnd] FROM t_Module WHERE ID = @a_iModuleID
IF (@l_iRangeBegin < 0)
BEGIN
-- Do it the old non-module way: This is for BioWare internal workflow.
UPDATE t_KeyGenStringID SET @a_iNewID = LastUsedID = LastUsedID + 1
SET @l_iError = @@ERROR
IF (@l_iError <> 0)
GOTO ON_ERROR
END
ELSE
BEGIN
-- Get the next valid stringID inside the module's ID range
-- first check the next one
SELECT @a_iNewID = StringIDLastUsed + 1 FROM t_Module
WHERE [ID] = @a_iModuleID
SET @l_iError = @@ERROR
IF (@l_iError <> 0)
GOTO ON_ERROR
-- If the new ID is in use, or it is outside the valid range, try to find a new one
IF ( EXISTS (SELECT 1 FROM t_String WHERE [ID] = @a_iNewID) OR (@a_iNewID NOT BETWEEN @l_iRangeBegin AND @l_iRangeEnd) )
BEGIN
SET @a_iNewID = NULL
-- Find the lowest ID in our range that is unused
SELECT TOP 1 @a_iNewID = X.[ID]+1 FROM
(
SELECT [ID] FROM t_String WHERE [ID]+1 BETWEEN @l_iRangeBegin AND @l_iRangeEnd
UNION
SELECT @l_iRangeBegin-1
) AS X
LEFT OUTER JOIN t_String AS existID
ON X.[ID] + 1 = existID.[ID]
WHERE existID.[ID] IS NULL
ORDER BY X.[ID] ASC
SET @l_iError = @@ERROR
IF (@l_iError <> 0)
GOTO ON_ERROR
-- throw error: no available StringIDs!
IF (@a_iNewID is NULL)
BEGIN
SET @l_iError = -100
GOTO ON_ERROR
END
END
UPDATE t_Module SET StringIDLastUsed = @a_iNewID
WHERE [ID] = @a_iModuleID
SET @l_iError = @@ERROR
IF (@l_iError <> 0)
GOTO ON_ERROR
END
COMMIT TRANSACTION tran_bsp_GetNextStringID
return 0
---------------------------------------------------------------------
ON_ERROR:
---------------------------------------------------------------------
IF @@TranCount > @l_iInitialTransactionCount
ROLLBACK TRANSACTION
return @l_iError
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
GRANT EXECUTE ON [dbo].[bsp_GetNextStringID] TO [bw_db_write]
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
------------------------------------------------------------------------------------------
-- bsp_AddModuleAssociation
-- Steven Hand
-- July 25, 2008
------------------------------------------------------------------------------------------
-- Add a direct dependency between two modules.
-- Creates all necessary module association lines to satisfy all possible full paths.
--
-- Params: @a_iChildModuleID -- the child module (inherits resources from parent)
-- Params: @a_iParentModuleID -- the parent module
--
------------------------------------------------------------------------------------------
CREATE PROCEDURE [dbo].[bsp_AddModuleAssociation]
@a_iChildModuleID INT,
@a_iParentModuleID INT
AS
BEGIN
INSERT INTO [dbo].[t_ModuleAssociation]
([ParentModuleID], [ChildModuleID], [FullPath], [Level])
VALUES (
@a_iParentModuleID,
@a_iChildModuleID,
CONVERT(varchar, @a_iParentModuleID) + '.' + CONVERT(varchar, @a_iChildModuleID) + '.',
2
)
INSERT INTO [dbo].[t_ModuleAssociation]
([ParentModuleID], [ChildModuleID], [FullPath], [Level])
SELECT
t1.ChildModuleID,
@a_iChildModuleID,
ISNULL(t1.FullPath, CONVERT(varchar, t1.ChildModuleID) + '.') + CONVERT(varchar, @a_iChildModuleID) + '.',
t1.Level + 1
FROM [dbo].[t_ModuleAssociation] t1
WHERE t1.ChildModuleID = @a_iParentModuleID
AND t1.ChildModuleID <> t1.ParentModuleID
INSERT INTO [dbo].[t_ModuleAssociation]
([ParentModuleID], [ChildModuleID], [FullPath], [Level])
SELECT
t1.ParentModuleID,
t1.ChildModuleID,
t2.FullPath + SUBSTRING(t1.FullPath,LEN(CONVERT(varchar,t2.ChildModuleID) + '.')+1,LEN(t1.FullPath)),
t1.Level + t2.Level - 1
FROM [dbo].[t_ModuleAssociation] t1
JOIN [dbo].[t_ModuleAssociation] t2
ON t2.ParentModuleID = @a_iParentModuleID
AND t2.ChildModuleID = @a_iChildModuleID
AND t1.[FullPath] LIKE CONVERT(varchar,@a_iChildModuleID) + '.%'
END
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
GRANT EXECUTE ON [dbo].[bsp_AddModuleAssociation] TO [bw_db_read]
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE PROCEDURE [dbo].[bsp_AddNewModule]
@a_sName VARCHAR (64),
@a_sUID VARCHAR(32),
@a_iParentModuleID INT,
@a_bIsCore BIT,
@a_sDirectory VARCHAR (64),
@a_iScriptResRefID int,
@a_iClientScriptResRefID int,
@a_sVariable2da varchar(32),
@a_iStringTableID int,
@a_sStartTag varchar(32),
@a_iStartAreaResRefID int,
@a_bIncludeInResBuild BIT,
@a_iType INT,
@a_iExtendedModuleID INT,
@a_iDisplayNameStringID int,
@a_iDescriptionStringID int,
@a_iPriority int,
@a_sIconImage varchar(32),
@a_dtReleaseDate DATETIME,
@a_sVersion varchar(32),
@a_sGameVersion varchar(32),
@a_iRatingStringID int,
@a_iRatingDescriptionStringID int,
@a_iURLStringID int,
@a_iPublisherStringID int,
@a_iProductID int,
@a_iPrice int,
@a_iPresentation int,
@a_iContentModuleID INT,
@a_bRequiresLocalization bit,
@a_bRequiresVO bit,
@a_iStringIDBegin int,
@a_iStringIDEnd int,
@a_iModuleID INT OUTPUT
AS
DECLARE @iError int
BEGIN TRANSACTION tran_bsp_AddNewModule
INSERT INTO t_Module ([Name], [UID], [IsCore], [Directory], [ScriptResRefID], [ClientScriptResRefID], [Variable2da],
[StringTableID], [StartTag], [StartAreaResRefID], [IncludeInResBuild], [Type], [ExtendedModuleID],
[DisplayNameStringID], [DescriptionStringID], [Priority], [IconImage], [ReleaseDate], [Version],
[GameVersion], [RatingStringID], [RatingDescriptionStringID], [URLStringID], [PublisherStringID],
[ProductID], [Price], [Presentation], [ContentModuleID],
[RequiresLocalization], [RequiresVO],
[StringIDBegin], [StringIDEnd], [StringIDLastUsed] )
VALUES(@a_sName, @a_sUID, @a_bIsCore, @a_sDirectory, @a_iScriptResRefID, @a_iClientScriptResRefID, @a_sVariable2da,
@a_iStringTableID, @a_sStartTag, @a_iStartAreaResRefID, @a_bIncludeInResBuild, @a_iType, @a_iExtendedModuleID,
@a_iDisplayNameStringID, @a_iDescriptionStringID, @a_iPriority, @a_sIconImage, @a_dtReleaseDate, @a_sVersion,
@a_sGameVersion, @a_iRatingStringID, @a_iRatingDescriptionStringID, @a_iURLStringID, @a_iPublisherStringID,
@a_iProductID, @a_iPrice, @a_iPresentation, @a_iContentModuleID,
@a_bRequiresLocalization, @a_bRequiresVO,
@a_iStringIDBegin, @a_iStringIDEnd, @a_iStringIDBegin-1)
IF (@@ERROR <> 0) GOTO ON_ERROR
SET @a_iModuleID = SCOPE_IDENTITY()
if @a_iParentModuleID = -1
INSERT INTO [dbo].[t_ModuleAssociation]([ParentModuleID],
[ChildModuleID], [FullPath], [Level])
VALUES (@a_iModuleID, @a_iModuleID, CONVERT(varchar, @a_iModuleID) + '.', 1)
else
INSERT INTO [dbo].[t_ModuleAssociation]([ParentModuleID],
[ChildModuleID], [FullPath], [Level])
SELECT t1.ChildModuleID,
@a_iModuleID, ISNULL(t1.FullPath, CONVERT(varchar, t1.ChildModuleID) + '.') + CONVERT(varchar, @a_iModuleID) + '.', t1.Level + 1
FROM [dbo].[t_ModuleAssociation] t1
WHERE t1.ChildModuleID = @a_iParentModuleID
IF (@@ERROR <> 0) GOTO ON_ERROR
IF (@a_iStringTableID IS NULL)
BEGIN
DECLARE @sStringTableName VARCHAR(64)
SET @sStringTableName = @a_sName + ' Talk Table'
EXEC @iError = dbo.bsp_AddStringTable @a_iModuleID,@sStringTableName , @a_iStringTableID OUTPUT
IF (@iError <> 0) GOTO ON_ERROR
END
COMMIT TRANSACTION tran_bsp_AddNewModule
RETURN 0
---------------------------------------------------------------------
ON_ERROR:
---------------------------------------------------------------------
SET @iError = @@ERROR
ROLLBACK TRANSACTION tran_bsp_AddNewModule
RETURN @iError
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
GRANT EXECUTE ON [dbo].[bsp_AddNewModule] TO [bw_db_write]
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
------------------------------------------------------------------------------------------
-- bsp_DeleteModuleAssociations
-- Steven Hand
-- July 25, 2008
------------------------------------------------------------------------------------------
-- Delete all of a module's associations (where child module id = given module id)
-- Ensures all indirect associations are deleted as well even if they are not direct
-- associations of the module given.
--
-- Params: @a_iModuleID -- the module (all associations to parents will be deleted)
--
------------------------------------------------------------------------------------------
CREATE PROCEDURE [dbo].[bsp_DeleteModuleAssociations]
@a_iModuleID INT
AS
BEGIN
DELETE FROM [dbo].[t_ModuleAssociation] WHERE [FullPath] IN (
SELECT t1.FullPath
FROM [dbo].[t_ModuleAssociation] t1
JOIN [dbo].[t_ModuleAssociation] t2
ON t1.FullPath LIKE t2.FullPath + '%'
WHERE t2.ChildModuleID = @a_iModuleID
)
END
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
GRANT EXECUTE ON [dbo].[bsp_DeleteModuleAssociations] TO [bw_db_read]
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE PROCEDURE [dbo].[bsp_AddResRef]
@a_iModuleID int,
@a_iOwnerModuleID int,
@a_sName varchar(32),
@a_sFolder varchar(128),
@a_sResType varchar(4),
@a_iState int,
@a_iResRefID int OUTPUT,
@a_iVersionID int OUTPUT
AS
declare @l_iError int
declare @bInValid bit
set @l_iError = 0
-- Start the main transaction
BEGIN TRANSACTION tran_bsp_AddResRef
exec @l_iError = dbo.bsp_ValidateResRefName null, null, @a_sResType, 0, @a_sName, @bInValid OUTPUT
if (@@ERROR <> 0) GOTO ON_ERROR
if (@bInValid = 1) GOTO ON_ERROR
INSERT INTO t_ResRef ([ResType])
VALUES (@a_sResType)
if (@@ERROR <> 0) GOTO ON_ERROR
SET @a_iResRefID = SCOPE_IDENTITY()
INSERT INTO t_ModuleResRef ([ModuleID], [ResRefID])
VALUES (@a_iModuleID, @a_iResRefID)
if (@@ERROR <> 0) GOTO ON_ERROR
INSERT INTO t_ModuleResRefVersion ([ModuleID], [ResRefID], [OwnerModuleID], [Name], [Folder], [RevisionID], [State])
VALUES (@a_iModuleID, @a_iResRefID, @a_iOwnerModuleID, @a_sName, @a_sFolder, 1, @a_iState)
IF (@@ERROR <> 0) GOTO ON_ERROR
SET @a_iVersionID = SCOPE_IDENTITY()
update t_ModuleResRef set currentmoduleresrefversionid = @a_iVersionID
where moduleid = @a_iModuleID and resrefid = @a_iResRefID
IF (@@ERROR <> 0) GOTO ON_ERROR
COMMIT TRANSACTION tran_bsp_AddResRef
return 0
---------------------------------------------------------------------
ON_ERROR:
---------------------------------------------------------------------
set @l_iError = @@ERROR
ROLLBACK TRANSACTION
return @l_iError
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
GRANT EXECUTE ON [dbo].[bsp_AddResRef] TO [bw_db_write]
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE PROCEDURE [dbo].[bsp_AddString]
@a_iModuleResRefVersionID int,
@a_iStringLanguageVariantID int,
@a_iStringTableID int,
@a_iOwnerModuleID int,
@a_iUseStringID int,
@a_iStringTypeID int,
@a_sText text,
@a_sDescription text,
@a_iOwnerResRefID int,
@a_iStringID int OUTPUT,
@a_iNewVersionID int OUTPUT
AS
declare @l_iError int
declare @l_iInitialTransactionCount int
declare @iModuleID int
declare @iResRefID int
declare @sName varchar(128)
set @l_iError = 0
-- Start the main transaction
set @l_iInitialTransactionCount = @@TranCount
BEGIN TRANSACTION tran_bsp_AddString
-- Check to see if we have specified a stringid to use
IF (@a_iUseStringID > 0)
BEGIN
-- Check to make sure it isn't in use
IF exists (select 1 from t_string where id = @a_iUseStringID)
BEGIN
set @l_iError = -101
IF (@l_iError <> 0) GOTO ON_ERROR
END
SET @a_iStringID = @a_iUseStringID
END
ELSE
BEGIN
-- Grab the new StringID if one isn't specified
EXEC @l_iError = dbo.bsp_GetNextStringID @a_iOwnerModuleID, @a_iStringID OUTPUT
IF (@l_iError <> 0) GOTO ON_ERROR
END
-- Add a t_String record here
INSERT INTO t_String ([ID], [StringTableID])
VALUES (@a_iStringID, @a_iStringTableID)
set @l_iError = @@ERROR
IF (@l_iError <> 0) GOTO ON_ERROR
-- Finish the transaction
-- If we do not have a version passed in then we need to create a new resource
IF (@a_iModuleResRefVersionID IS NULL or @a_iModuleResRefVersionID <= 0)
BEGIN
SELECT DISTINCT @iModuleID = [ID] FROM t_Module WHERE StringTableID = @a_iStringTableID
set @l_iError = @@ERROR
IF (@l_iError <> 0) GOTO ON_ERROR
-- if the module is empty then we default to the core module
IF (@iModuleID IS NULL or @iModuleID <= 0)
BEGIN
SELECT @iModuleID = [ID] FROM t_Module WHERE IsCore = 1
END
SET @sName = 'String' + convert(varchar(10),@a_iStringID)
EXEC @l_iError = dbo.[bsp_AddResRef] @iModuleID, @a_iOwnerModuleID, @sName, '', 'str', 0, @iResRefID OUTPUT , @a_iNewVersionID OUTPUT
if (@l_iError <> 0) GOTO ON_ERROR
END
ELSE
BEGIN
SET @a_iNewVersionID = @a_iModuleResRefVersionID
END
INSERT INTO t_StringVersion ([StringID], [ModuleResRefVersionID], [StringTypeID], [OwnerResRefID])
VALUES (@a_iStringID, @a_iNewVersionID, @a_iStringTypeID, @a_iOwnerResRefID)
set @l_iError = @@ERROR
IF (@l_iError <> 0) GOTO ON_ERROR
-- Insert the record into the text table
INSERT INTO t_StringText ([StringID], [ModuleResRefVersionID], [StringLanguageVariantID], [Text], [Description])
VALUES (@a_iStringID, @a_iNewVersionID, @a_iStringLanguageVariantID, @a_sText, @a_sDescription)
set @l_iError = @@ERROR
IF (@l_iError <> 0) GOTO ON_ERROR
IF @@TranCount > @l_iInitialTransactionCount
COMMIT TRANSACTION tran_bsp_AddString
return 0
---------------------------------------------------------------------
ON_ERROR:
---------------------------------------------------------------------
IF @@TranCount > @l_iInitialTransactionCount
ROLLBACK TRANSACTION
return @l_iError
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
GRANT EXECUTE ON [dbo].[bsp_AddString] TO [bw_db_write]
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
------------------------------------------------------------------------
-- Stored Proc: bsp_AdjustVOScriptLineCharacterInternalForStats
------------------------------------------------------------------------
-- Owned By: Chris Christou
-- Created On: April 22, 2008
--
-- Description: Adjusts data in t_VOScriptLineCharacterInternal
-- (keyed on @@SPID) to reflect character line count stats
-- more accurately.
--
-- Given how SoundSets are set up on Dragon Age, we wish to
-- remove character association from select lines, so that
-- they are not considered as lines owned and spoken by
-- that (or any) character.
--
-- NOTE: Callers should use this bsp after t_VOScriptLineCharacterInternal
-- is populated, likely from a call to bsp_DetermineVOScriptLineCharacters.
--
-- Parameters:
--
-- None
--
------------------------------------------------------------------------
CREATE PROCEDURE [dbo].[bsp_AdjustVOScriptLineCharacterInternalForStats]
AS
SET NOCOUNT ON
DECLARE @iError int
BEGIN TRANSACTION tranAdjustForStats
------------------------------------------------------------------------
-- Cache the SoundSet ResRefVersionIDs that we wish to use
-- in our processing. This is considerably faster.
------------------------------------------------------------------------
DECLARE @SoundSetVersion TABLE
(
[ModuleResRefVersionID] int
)
------------------------------------------------------------------------
-- Look up Sound Set resource versions of interest.
------------------------------------------------------------------------
INSERT @SoundSetVersion
SELECT DISTINCT ResourceModuleResRefVersionID
FROM t_VOScriptLineCharacterInternal voslci
JOIN t_ModuleResRefVersion mrv
ON voslci.[ResourceModuleResRefVersionID] = mrv.[ID]
AND LEFT(mrv.[Name], 3) = 'ss_'
WHERE voslci.[SPID] = @@SPID
SELECT @iError = @@ERROR
IF (@iError <> 0) GOTO ON_ERROR
------------------------------------------------------------------------
-- SoundSet Culling:
-- If a soundset section has been declared void, remove all of its
-- placeholder and child (NPC) lines.
--
-- Definition: a section is declared void if it is a top-level NPC
-- line, where the [Comment] field contains 'VOID' in it.
--
-- Note: Child NPC lines are only removed one level deep.
--
-- This is how the project has decided to do soundsets.
------------------------------------------------------------------------
DELETE voslci
FROM @SoundSetVersion ssVersion
JOIN t_ConversationTransition ct
ON ct.[ModuleResRefVersionID] = ssVersion.[ModuleResRefVersionID]
JOIN t_ConversationLine clStart
ON clStart.[ModuleResRefVersionID] = ct.[ModuleResRefVersionID]
AND ct.[FromIndex] = -1
AND ct.[ToIndex] = clStart.[Index]
AND clStart.[Comment] LIKE '%void%'
JOIN t_ConversationTransition ctStartToPC
ON clStart.[ModuleResRefVersionID] = ctStartToPC.[ModuleResRefVersionID]
AND ctStartToPC.[FromIndex] = clStart.[Index]
JOIN t_ConversationTransition ctPCToNPC
ON ctPCToNPC.[ModuleResRefVersionID] = ctStartToPC.[ModuleResRefVersionID]
AND ctPCToNPC.[FromIndex] = ctStartToPC.[ToIndex]
JOIN t_ConversationLine clNPCLevel2
ON ctPCToNPC.[ModuleResRefVersionID] = clNPCLevel2.[ModuleResRefVersionID]
AND ctPCToNPC.[ToIndex] = clNPCLevel2.[Index]
JOIN t_VOScriptLineCharacterInternal voslci
ON voslci.[SPID] = @@SPID
AND voslci.[StringID] = clNPCLevel2.[TextStringID]
SELECT @iError = @@ERROR
IF (@iError <> 0) GOTO ON_ERROR
------------------------------------------------------------------------
-- SoundSet Culling:
-- The root level NPC lines are all section headings.
-- We wish to remove all these so that they are considered to have
-- no mapped character, when we are performing line counts per
-- character.
------------------------------------------------------------------------
DELETE voslci
FROM @SoundSetVersion ssVersion
JOIN t_ConversationTransition ct
ON ct.[ModuleResRefVersionID] = ssVersion.[ModuleResRefVersionID]
JOIN t_ConversationLine clStart
ON clStart.[ModuleResRefVersionID] = ct.[ModuleResRefVersionID]
AND ct.[FromIndex] = -1
AND ct.[ToIndex] = clStart.[Index]
JOIN t_VOScriptLineCharacterInternal voslci
ON voslci.[SPID] = @@SPID
AND voslci.[StringID] = clStart.[TextStringID]
SELECT @iError = @@ERROR
IF (@iError <> 0) GOTO ON_ERROR
------------------------------------------------------------------------
-- Finished
------------------------------------------------------------------------
COMMIT TRANSACTION tranAdjustForStats
SET NOCOUNT OFF
RETURN 0
------------------------------------------------------------------------
ON_ERROR:
------------------------------------------------------------------------
ROLLBACK TRANSACTION
SET NOCOUNT OFF
RETURN @iError
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
------------------------------------------------------------------------------------------
-- bsp_AreaObjectInstanceChanges
-- Curtis Onuczko
-- May 9, 2008
------------------------------------------------------------------------------------------
-- Given a start date, end date, and a module ID all area objects that have been added/removed
-- between the current version as of the start date and the current version as of the end date.
--
-- Params: @a_sFolder -- t_ModuleResRefVersion.Folder value
-- Selects: Area object instance changes.
--
------------------------------------------------------------------------------------------
CREATE PROCEDURE [dbo].[bsp_AreaObjectInstanceChanges]
@a_dateStart DATETIME,
@a_dateEnd DATETIME,
@a_iModuleID INT
AS
BEGIN
-- Get all of the changed areas into a table
DECLARE @t_ChangedAreas TABLE
(
Name VARCHAR(32),
ResRefID INT,
IDBeforeStart INT,
IDBeforeEnd INT
)
INSERT INTO @t_ChangedAreas (Name, ResRefID, IDBeforeStart, IDBeforeEnd)
SELECT
mrrv.Name,
mrrv.ResRefID,
(
SELECT MAX (mrrv1.id)
FROM t_ModuleResRefVersion mrrv1
WHERE mrrv1.ResRefID = mrrv.ResRefID
AND mrrv1.moduleID = mrrv.moduleID
AND mrrv1.Status <> 'S'
AND mrrv1.Date <= @a_dateStart
),
MAX (mrrv.ID)
FROM t_Area t1
JOIN t_ModuleResRefVersion mrrv
ON t1.ModuleResRefVersionID = mrrv.ID
WHERE mrrv.Status <> 'S'
AND mrrv.ModuleID = @a_iModuleID
AND mrrv.Date > @a_dateStart
AND mrrv.Date <= @a_dateEnd
GROUP BY mrrv.Name, mrrv.ResRefID, mrrv.moduleID
-- Add all changed area objects before the start time to a table
DECLARE @t_AreaObjectsBeforeStart TABLE
(
AreaName VARCHAR(32),
ResRefName VARCHAR(32),
ResRefID INT,
CurrentResRefMRRVID INT,
Tag VARCHAR(32),
InstanceCount INT
)
INSERT INTO @t_AreaObjectsBeforeStart (AreaName, ResRefName, ResRefID, CurrentResRefMRRVID, Tag, InstanceCount)
SELECT
t2.Name,
t3.Name,
t3.ResRefID,
t3.ID,
CASE WHEN t1.tag = '' THEN ISNULL(dbo.udf_GetResourceTag (t3.ID), t3.Name) ELSE t1.tag END,
COUNT (*)
FROM t_AreaObject t1
JOIN @t_ChangedAreas t2
ON t1.ModuleResRefVersionID = t2.IDBeforeStart
JOIN t_ModuleResRefVersion t3
ON t1.ObjectResRefID = t3.ResRefID
AND t3.Status = 'C'
GROUP BY t2.Name, t3.Name, t3.ResRefID, t3.ID, t1.Tag
-- -- Add all changed area objects before the end time to a table
DECLARE @t_AreaObjectsBeforeEnd TABLE
(
AreaName VARCHAR(32),
ResRefName VARCHAR(32),
ResRefID INT,
CurrentResRefMRRVID INT,
Tag VARCHAR(32),
InstanceCount INT
)
INSERT INTO @t_AreaObjectsBeforeEnd (AreaName, ResRefName, ResRefID, CurrentResRefMRRVID, Tag, InstanceCount)
SELECT
t2.Name,
t3.Name,
t3.ResRefID,
t3.ID,
CASE WHEN t1.tag = '' THEN ISNULL(dbo.udf_GetResourceTag (t3.ID), t3.Name) ELSE t1.tag END,
COUNT (*)
FROM t_AreaObject t1
JOIN @t_ChangedAreas t2
ON t1.ModuleResRefVersionID = t2.IDBeforeEnd
JOIN t_ModuleResRefVersion t3
ON t1.ObjectResRefID = t3.ResRefID
AND t3.Status = 'C'
GROUP BY t2.Name, t3.Name, t3.ResRefID, t3.ID, t1.Tag
SELECT
ISNULL (t1.AreaName, t2.AreaName) as AreaName,
t3.ResType as ResType,
ISNULL (t1.ResRefName, t2.ResRefName) as ResRefName,
ISNULL (t1.Tag, t2.Tag) as Tag,
ISNULL (t2.InstanceCount, 0) - ISNULL (t1.InstanceCount, 0) as InstanceDelta
FROM @t_AreaObjectsBeforeStart t1
FULL JOIN @t_AreaObjectsBeforeEnd t2
ON t1.AreaName = t2.AreaName
AND t1.ResRefName = t2.ResRefName
AND t1.Tag = t2.Tag
JOIN t_ResRef t3
ON ISNULL(t1.ResRefID, t2.ResRefID) = t3.ID
WHERE ISNULL (t2.InstanceCount, 0) - ISNULL (t1.InstanceCount, 0) <> 0
ORDER BY AreaName, ResType, ResRefName, Tag
END
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
GRANT EXECUTE ON [dbo].[bsp_AreaObjectInstanceChanges] TO [bw_db_read]
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
------------------------------------------------------------------------
-- Stored Proc: bsp_BatchPrintVOScriptLines
------------------------------------------------------------------------
-- Owned By: Chris Christou
-- Created On: April 11, 2007
-- Description: Performs batch processing of VO Script Lines
-- Lines that are batch processed are logged to the database as
-- having been recorded. All the other data such as audio filenames,
-- and status record manipulation happens here as well.
--
-- Parameters:
-- None. All data is processed from the t_VOScriptBatchPrint table
--
------------------------------------------------------------------------
CREATE PROCEDURE [dbo].[bsp_BatchPrintVOScriptLines]
AS
SET NOCOUNT ON
DECLARE @iError int
BEGIN TRANSACTION tranVOBatchPrint
------------------------------------------------------------------------
-- Determine the String Revision Numbers
------------------------------------------------------------------------
-- Increment the Revisions of existing StringIDs
UPDATE vosr
SET vosr.[Revision] = 1 + vosr.[Revision]
FROM t_VOScriptStringRevision vosr
JOIN t_VOScriptBatchPrint vobp
ON vobp.[SPID] = @@SPID
AND vobp.[StringID] = vosr.[StringID]
AND vobp.[StringLanguageID] = vosr.[StringLanguageID]
AND vobp.[StringVariantID] = vosr.[StringVariantID]
SELECT @iError = @@ERROR
IF (@iError <> 0) GOTO ON_ERROR
-- Grab these new revisions
UPDATE vobp
SET vobp.[Revision] = vosr.[Revision]
FROM t_VOScriptBatchPrint vobp
JOIN t_VOScriptStringRevision vosr
ON vobp.[SPID] = @@SPID
AND vobp.[StringID] = vosr.[StringID]
AND vobp.[StringLanguageID] = vosr.[StringLanguageID]
AND vobp.[StringVariantID] = vosr.[StringVariantID]
SELECT @iError = @@ERROR
IF (@iError <> 0) GOTO ON_ERROR
-- Insert strings never before revisioned
INSERT t_VOScriptStringRevision
([StringID], [StringLanguageID], [StringVariantID], [Revision])
SELECT [StringID], [StringLanguageID], [StringVariantID], 1
FROM t_VOScriptBatchPrint vobp
WHERE vobp.[SPID] = @@SPID
AND vobp.[Revision] IS NULL
AND vobp.[StringID] IS NOT NULL
SELECT @iError = @@ERROR
IF (@iError <> 0) GOTO ON_ERROR
-- Set the revision data
UPDATE vobp
SET vobp.[Revision] = 1
FROM t_VOScriptBatchPrint vobp
WHERE vobp.[SPID] = @@SPID
AND vobp.[Revision] IS NULL
SELECT @iError = @@ERROR
IF (@iError <> 0) GOTO ON_ERROR
------------------------------------------------------------------------
-- END Determine the String Revision Numbers
------------------------------------------------------------------------
------------------------------------------------------------------------
-- Create the Script Instances
------------------------------------------------------------------------
-- Make Instances
INSERT t_VOScriptInstance
([VOScriptID], [Active], [StringLanguageID],
[PrintedOn], [ScriptType], [ScriptParent])
SELECT DISTINCT [VOScriptID], 'A', [StringLanguageID],
[PrintedOn], [ScriptType], [ScriptParent]
FROM t_VOScriptBatchPrint
WHERE [SPID] = @@SPID
SELECT @iError = @@ERROR
IF (@iError <> 0) GOTO ON_ERROR
-- Get these Instance IDs
UPDATE vobp
SET [VOScriptInstanceID] = vosi.[ID]
FROM t_VOScriptBatchPrint vobp
JOIN t_VOScriptInstance vosi
ON vobp.[SPID] = @@SPID
AND vobp.[VOScriptID] = vosi.[VOScriptID]
AND vosi.[Active] = 'A'
AND vobp.[StringLanguageID] = vosi.[StringLanguageID]
SELECT @iError = @@ERROR
IF (@iError <> 0) GOTO ON_ERROR
-- Update the Comments and the OutputFolders
UPDATE vosi
SET [Comment] = vobp.[Comment],
[OutputFolder] = vobp.[OutputFolder]
FROM t_VOScriptInstance vosi
JOIN t_VOScriptBatchPrint vobp
ON vobp.[SPID] = @@SPID
AND vobp.[VOScriptInstanceID] = vosi.[ID]
SELECT @iError = @@ERROR
IF (@iError <> 0) GOTO ON_ERROR
------------------------------------------------------------------------
-- END Create the Script Instances
------------------------------------------------------------------------
------------------------------------------------------------------------
-- Create the Script Instance Strings
------------------------------------------------------------------------
-- Look up the current Instance Strings (these will become PreviousVOScriptInstanceStringID)
UPDATE vobp
SET [PreviousVOScriptInstanceStringID] = vosis.[ID]
FROM t_VOScriptBatchPrint vobp
JOIN t_VOScriptInstanceString vosis
ON vosis.[StringID] = vobp.[StringID]
AND vosis.[Active] = 'A'
AND vosis.[StringVariantID] = vobp.[StringVariantID]
JOIN t_VOScriptInstance vosi
ON vosis.[VOScriptInstanceID] = vosi.[ID]
AND vosi.[StringLanguageID] = vobp.[StringLanguageID]
WHERE vobp.[SPID] = @@SPID
SELECT @iError = @@ERROR
IF (@iError <> 0) GOTO ON_ERROR
-- Look up the English CompareDate values
UPDATE vobp
SET vobp.[CompareDate] = st.[VORequestOn]
FROM t_VOScriptBatchPrint vobp
JOIN t_StringText st
ON vobp.[SPID] = @@SPID
AND vobp.[IsForeign] = 0 -- English only
AND vobp.[StringID] = st.[StringID]
AND vobp.[ModuleResRefVersionID] = st.[ModuleResRefVersionID]
AND st.[StringLanguageVariantID] = 1
SELECT @iError = @@ERROR
IF (@iError <> 0) GOTO ON_ERROR
-- Perform Foreign VO Script Processing, only
-- if there is foreign VO Script data to process.
IF (EXISTS(
SELECT 1
FROM t_VOScriptBatchPrint
WHERE [SPID] = @@SPID
AND [IsForeign] = 1))
BEGIN
-- Look up the Foreign CompareDate values
-- TODO : Verify this
UPDATE uvobp
SET uvobp.[StringLanguageVariantVersionID] = tMaxSLVVID.[MasStringLanguageVariantVersionID]
FROM t_VOScriptBatchPrint uvobp
JOIN (
SELECT vobp.[ID], MAX(slvv.[ID]) as [MasStringLanguageVariantVersionID]
FROM t_VOScriptBatchPrint vobp
JOIN t_StringLanguageVariant slv
ON vobp.[SPID] = @@SPID
AND vobp.[StringLanguageID] = slv.[StringLanguageID]
AND vobp.[StringVariantID] = slv.[StringVariantID]
JOIN t_StringLanguageVariantVersion slvv
ON slv.[ID] = slvv.[StringLanguageVariantID]
AND (slvv.[Status] = 'C' OR slvv.[Status] = 'H')
JOIN t_StringImportSession sis
ON slvv.[StringImportSessionID] = sis.[ID]
AND vobp.[PrintedOn] > sis.[ImportedOn]
GROUP BY vobp.[ID]
) tMaxSLVVID
ON uvobp.[SPID] = @@SPID
AND uvobp.[IsForeign] = 1
AND uvobp.[ID] = tMaxSLVVID.[ID]
SELECT @iError = @@ERROR
IF (@iError <> 0) GOTO ON_ERROR
-- Apply Foreign CompareDate values
UPDATE vobp
SET vobp.[CompareDate] = sis.[ImportedOn]
FROM t_VOScriptBatchPrint vobp
JOIN t_StringLanguageVariantText slvt
ON vobp.[SPID] = @@SPID
AND vobp.[StringLanguageVariantVersionID] = slvt.[StringLanguageVariantVersionID]
AND vobp.[StringID] = slvt.[StringID]
JOIN t_StringImportSession sis
ON slvt.[StringImportSessionID] = sis.[ID]
SELECT @iError = @@ERROR
IF (@iError <> 0) GOTO ON_ERROR
END -- END Foreign VO Script Processing
-- Make new Script Instance String Records
INSERT INTO t_VOScriptInstanceString
([VOScriptInstanceID], [Active], [Status], [Revision], [CompareDate],
[PreviousVOScriptInstanceStringID], [IsForeign], [StringID],
[ModuleResRefVersionID], [StringLanguageVariantID],
[StringLanguageVariantVersionID], [AudioFileName],
[StringVariantID])
SELECT [VOScriptInstanceID], 'A', 'P', [Revision], [CompareDate],
[PreviousVOScriptInstanceStringID], [IsForeign], [StringID],
[ModuleResRefVersionID], 1,
[StringLanguageVariantVersionID], [AudioFileName],
[StringVariantID]
FROM t_VOScriptBatchPrint vobp
WHERE vobp.[SPID] = @@SPID
AND vobp.[StringID] IS NOT NULL
SELECT @iError = @@ERROR
IF (@iError <> 0) GOTO ON_ERROR
-- Grab the new VOScriptInstanceStringIDs
UPDATE vobp
SET [VOScriptInstanceStringID] = vosis.[ID]
FROM t_VOScriptBatchPrint vobp
JOIN t_VOScriptInstanceString vosis
ON vobp.[SPID] = @@SPID
AND vobp.[VOScriptInstanceID] = vosis.[VOScriptInstanceID]
AND vobp.[StringID] = vosis.[StringID]
AND (
(vobp.[StringLanguageVariantVersionID] = vosis.[StringLanguageVariantVersionID])
or (vosis.[IsForeign] = 0 and vobp.[IsForeign] = 0)
)
SELECT @iError = @@ERROR
IF (@iError <> 0) GOTO ON_ERROR
-- Create new Script Instance String Status Records
INSERT INTO t_VOScriptInstanceStringStatus
([VOScriptInstanceStringID], [Active], [Action],
[CompareDate], [Revision], [Comment])
SELECT vosis.[ID], 'A', 'P',
vosis.[CompareDate], vosis.[Revision], vobp.[Comment]
FROM t_VOScriptInstanceString vosis
JOIN t_VOScriptBatchPrint vobp
ON vobp.[SPID] = @@SPID
AND vosis.[ID] = vobp.[VOScriptInstanceStringID]
SELECT @iError = @@ERROR
IF (@iError <> 0) GOTO ON_ERROR
------------------------------------------------------------------------
-- END Create the Script Instance Strings
------------------------------------------------------------------------
------------------------------------------------------------------------
-- Remove our temp data
------------------------------------------------------------------------
DELETE FROM t_VOScriptBatchPrint
WHERE [SPID] = @@SPID
COMMIT TRANSACTION tranVOBatchPrint
SET NOCOUNT OFF
return 0
------------------------------------------------------------------------
ON_ERROR:
------------------------------------------------------------------------
ROLLBACK TRANSACTION
SET NOCOUNT OFF
return @iError
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
GRANT EXECUTE ON [dbo].[bsp_BatchPrintVOScriptLines] TO [bw_db_write]
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE PROCEDURE [dbo].[bsp_CheckinResource]
@a_iModuleID int,
@a_iResRefID int,
@a_iVersionID int,
@a_sComment text
AS
declare @iModuleID int
declare @iResRefID int
declare @iError int
declare @iRowCount int
set @iError = 0
-- Start the main transaction
BEGIN TRANSACTION tran_bsp_CheckinResource
-- Get the Module and ResRef ID's if we have passed in the Version
IF (@a_iVersionID IS NULL or @a_iVersionID <= 0)
BEGIN
SET @iModuleID = @a_iModuleID
SET @iResRefID = @a_iResRefID
END
ELSE
BEGIN
SELECT @iModuleID = ModuleID
, @iResRefID = ResRefID
FROM t_ModuleResRefVersion
WHERE ID = @a_iVersionID
END
-- Archive the current version
update t_ModuleResRefVersion
set status = 'H'
from t_ModuleResRef mrr
where t_ModuleResRefVersion.id = mrr.CurrentModuleResRefVersionID
and mrr.ModuleId = @iModuleID
and mrr.ResRefID = @iResRefID
SELECT @iRowCount = @@ROWCOUNT, @iError = @@ERROR
IF (@iError <> 0 or @iRowCount = 0) GOTO ON_ERROR
-- Update the scratch version that will become the current version
update t_ModuleResRefVersion
set status = 'C', comment = case DATALENGTH(@a_sComment) WHEN 0 THEN NULL ELSE @a_sComment END, date = getdate()
from t_ModuleResRef mrr
where t_ModuleResRefVersion.id = mrr.ScratchModuleResRefVersionID
and mrr.ModuleId = @iModuleID
and mrr.ResRefID = @iResRefID
SELECT @iRowCount = @@ROWCOUNT, @iError = @@ERROR
IF (@iError <> 0 or @iRowCount = 0) GOTO ON_ERROR
-- Update the current and scratch references
update t_ModuleResRef
set CurrentModuleResRefVersionID = ScratchModuleResRefVersionID
, ScratchModuleResRefVersionID = null
where ModuleId = @iModuleID
and ResRefID = @iResRefID
and ScratchModuleResRefVersionID IS NOT NULL
SELECT @iRowCount = @@ROWCOUNT, @iError = @@ERROR
IF (@iError <> 0 or @iRowCount = 0) GOTO ON_ERROR
COMMIT TRANSACTION tran_bsp_CheckinResource
return 0
---------------------------------------------------------------------
ON_ERROR:
---------------------------------------------------------------------
if (@iError = 0)
set @iError = @@ERROR
ROLLBACK TRANSACTION
return @iError
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
GRANT EXECUTE ON [dbo].[bsp_CheckinResource] TO [bw_db_write]
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE PROCEDURE [dbo].[bsp_CheckoutResource]
@a_iModuleID int,
@a_iResRefID int,
@a_iCurrentVersionID int,
@a_iNewVersionID int OUTPUT
AS
declare @iModuleID int
declare @iResRefID int
declare @iCurrentVersionID int
declare @iRevisionID int
declare @iError int
declare @sTableName varchar(128)
DECLARE @iCounter int
declare @iTotalCount int
declare @iRowCount int
Declare @tResourceTables table (TID int IDENTITY, TableName varchar(128))
set @iError = 0
-- Start the main transaction
BEGIN TRANSACTION tran_bsp_CheckoutResource
IF (@a_iCurrentVersionID IS NULL or @a_iCurrentVersionID <= 0)
BEGIN
select @iCurrentVersionID = CurrentModuleResRefVersionID
, @iModuleID = @a_iModuleID
, @iResRefID = @a_iResRefID
from t_ModuleResRef mrr
where ModuleId = @a_iModuleID
and ResRefID = @a_iResRefID
and ScratchModuleResRefVersionID IS NULL
END
ELSE
BEGIN
SELECT @iCurrentVersionID = @a_iCurrentVersionID
, @iModuleID = ModuleID
, @iResRefID = ResRefID
FROM t_ModuleResRefVersion
WHERE ID = @a_iCurrentVersionID
END
IF (@iCurrentVersionID IS NULL or @iCurrentVersionID <= 0)
BEGIN
SET @iError = -1
GOTO ON_ERROR
END
SELECT @iRevisionID = mrrv.RevisionID + 1
FROM t_ModuleResRefVersion mrrv
JOIN t_ModuleResRef mrr on mrrv.ID = mrr.CurrentModuleResRefVersionID
AND mrr.ModuleID = @iModuleID
AND mrr.ResRefID = @iResRefID
AND mrr.ScratchModuleResRefVersionID IS NULL
select @iRowCount = @@ROWCOUNT, @iError = @@ERROR
IF (@iError <> 0 or @iRowCount = 0) GOTO ON_ERROR
insert into t_ModuleResRefVersion (ModuleID, OwnerModuleID, ResRefID, Name, Folder, Status, RevisionID, State)
select mrrv.ModuleID, mrrv.OwnerModuleID, mrrv.ResRefID, mrrv.Name, mrrv.Folder, 'S', @iRevisionID, mrrv.State
from t_ModuleResRefVersion mrrv
where mrrv.id = @iCurrentVersionID
select @iRowCount = @@ROWCOUNT, @iError = @@ERROR
if (@iError <> 0) GOTO ON_ERROR
SET @a_iNewVersionID = SCOPE_IDENTITY()
INSERT INTO @tResourceTables(TableName)
select lower(rt.name)
from t_ResourceDefinition rd
join t_ResRef rr on rd.ResType = rr.ResType
and rr.id = @iResRefID
join t_ResourceTableRelationship rtr1 on rtr1.FullPath like convert(varchar(10),rd.BaseResourceTableID) + '.%'
join t_ResourceTables rt on rt.id = rtr1.ChildResourceTableID
order by level
select @iTotalCount = @@ROWCOUNT, @iError = @@ERROR
if (@iError <> 0) GOTO ON_ERROR
SET @iCounter = 1
WHILE @iCounter <= @iTotalCount
BEGIN
SELECT @sTableName = TableName
FROM @tResourceTables
WHERE TID = @iCounter
exec @iError = dbo.bsp_CreateNewResourceVersion @iCurrentVersionID, @a_iNewVersionID, @sTableName
if (@iError <> 0) GOTO ON_ERROR
SET @iCounter = @iCounter + 1
END
-- We now do the string tables
exec @iError = dbo.bsp_CreateNewStringVersion @iCurrentVersionID, @a_iNewVersionID
if (@iError <> 0) GOTO ON_ERROR
update t_ModuleResRef set scratchmoduleresrefversionid = @a_iNewVersionID
where moduleid = @iModuleID and resrefid = @iResRefID
and scratchmoduleresrefversionid is null
SELECT @iRowCount = @@ROWCOUNT, @iError = @@ERROR
IF (@iError <> 0 or @iRowCount = 0) GOTO ON_ERROR
COMMIT TRANSACTION tran_bsp_CheckoutResource
return 0
---------------------------------------------------------------------
ON_ERROR:
---------------------------------------------------------------------
if (@iError = 0)
set @iError = -1
ROLLBACK TRANSACTION
return @iError
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
GRANT EXECUTE ON [dbo].[bsp_CheckoutResource] TO [bw_db_write]
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
------------------------------------------------------------------------
-- Alter bsp_CreateNewStringVersion to incorporate the VORequestOn flag
------------------------------------------------------------------------
CREATE PROCEDURE [dbo].[bsp_CreateNewStringVersion]
@a_iCurrentVersionID int,
@a_iNewVersionID int
AS
INSERT INTO t_StringVersion (StringID, ModuleResRefVersionID, StringTypeID, OwnerResRefID, Define)
SELECT StringID, @a_iNewVersionID, StringTypeID, OwnerResRefID, Define
FROM t_StringVersion sv1
WHERE sv1.ModuleResRefVersionID = @a_iCurrentVersionID
if (@@ERROR <> 0) GOTO ON_ERROR
INSERT INTO t_StringText (StringID, ModuleResRefVersionID, StringLanguageVariantID,
[Text], [Description],
[LastMinorUpdateOn], [LastMinorUpdateBy], [LastMajorUpdateOn], [LastMajorUpdateBy],
[StringIsCopy], [MinorUpdateCount], [VORequestOn])
SELECT StringID, @a_iNewVersionID, StringLanguageVariantID, [Text], [Description],
[LastMinorUpdateOn], [LastMinorUpdateBy], [LastMajorUpdateOn], [LastMajorUpdateBy],
1, [MinorUpdateCount], [VORequestOn]
FROM t_StringText st1
WHERE st1.ModuleResRefVersionID = @a_iCurrentVersionID
if (@@ERROR <> 0) GOTO ON_ERROR
return 0
---------------------------------------------------------------------
ON_ERROR:
---------------------------------------------------------------------
return @@ERROR
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
GRANT EXECUTE ON [dbo].[bsp_CreateNewStringVersion] TO [bw_db_write]
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
------------------------------------------------------------------------
-- bsp_CreateScratchStringLanguageVariantVersion
------------------------------------------------------------------------
-- Owned By: Kris Tan
-- Created On: 09-21-2006
-- Description: This method creates a new Scratch entry and updates
-- t_StringLanguageVariant
------------------------------------------------------------------------
CREATE PROCEDURE [dbo].[bsp_CreateScratchStringLanguageVariantVersion]
@a_iStringLanguageVariantID INT,
@a_iStringImportSessionID INT,
@a_inewStringLanguageVariantVersionID INT OUTPUT
AS
BEGIN TRANSACTION tranCreateScratchLangVarVer
DECLARE @iError INT
-- First check to see if a scratch already exists for this language variant version
IF EXISTS
(
SELECT 1
FROM [dbo].[t_StringLanguageVariant]
WHERE [ID] = @a_iStringLanguageVariantID
AND [ScratchStringLanguageVariantVersionID] IS NULL
)
BEGIN
-- Create the new StringLanguageVariantVersion
INSERT INTO [dbo].[t_StringLanguageVariantVersion]
(
[StringLanguageVariantID],
[Status],
[PreviousStringLanguageVariantVersionID],
[StringImportSessionID]
)
SELECT
[ID],
'S',
[CurrentStringLanguageVariantVersionID],
@a_iStringImportSessionID
FROM [dbo].[t_StringLanguageVariant]
WHERE [ID] = @a_iStringLanguageVariantID
-- Retrieve the newly created ID
SELECT @iError = @@ERROR, @a_inewStringLanguageVariantVersionID = SCOPE_IDENTITY()
if (@iError <> 0) GOTO ON_ERROR
-- Update the scratch id in t_StringLanguageVariant to the new ID we just created
UPDATE [dbo].[t_StringLanguageVariant]
SET
[ScratchStringLanguageVariantVersionID] = @a_inewStringLanguageVariantVersionID
WHERE
[ID] = @a_iStringLanguageVariantID
SELECT @iError = @@ERROR
if (@iError <> 0) GOTO ON_ERROR
END
ELSE
BEGIN
SET @iError = -1
GOTO ON_ERROR
END
COMMIT TRANSACTION tranCreateScratchLangVarVer
return 0
---------------------------------------------------------------------
ON_ERROR:
---------------------------------------------------------------------
ROLLBACK TRANSACTION
return @iError
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
GRANT EXECUTE ON [dbo].[bsp_CreateScratchStringLanguageVariantVersion] TO [bw_db_write]
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
------------------------------------------------------------------------
-- Stored Proc: bsp_CreateVOSession
------------------------------------------------------------------------
-- Owned By: Chris Mihalick
-- Created On: May 15, 2008
-- Description: Creates a VO Session, returns the ID
--
-- Parameters
-- @a_iLanguageID - Language
-- @a_iNewVOSessionID - OUT - ID of created VO Session
--
-- Returns
-- o 0 = success
-- o else = error code
--
------------------------------------------------------------------------
CREATE PROCEDURE [dbo].[bsp_CreateVOSession]
@a_iLanguageID int,
@a_iNewVOSessionID int OUTPUT
AS
SET NOCOUNT ON
DECLARE @iError int
BEGIN TRANSACTION tran_CreateVOSession
INSERT t_VOSession ([LanguageID]) VALUES (@a_iLanguageID)
SELECT @a_iNewVOSessionID = SCOPE_IDENTITY() , @iError = @@ERROR
IF (@iError <> 0) GOTO ON_ERROR
COMMIT TRANSACTION tran_CreateVOSession
SET NOCOUNT OFF
RETURN 0
------------------------------------------------------------------------
ON_ERROR:
------------------------------------------------------------------------
ROLLBACK TRANSACTION
SET @a_iNewVOSessionID = -1
SET NOCOUNT OFF
RETURN @iError
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
GRANT EXECUTE ON [dbo].[bsp_CreateVOSession] TO [bw_db_write]
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE PROCEDURE [dbo].[bsp_DeleteResource]
@a_iID int,
@a_bDelete bit,
@a_bReWrite bit,
@a_bUndoCheckOut bit
AS
declare @iError int
declare @iRowCount int
declare @iID int
declare @sTableName varchar(128)
DECLARE @iCounter int
declare @iTotalCount int
Declare @tResourceTables table (TID int IDENTITY, TableName varchar(128))
declare @sql nvarchar(4000)
set @iError = 0
set @sql = ''
set @iID = @a_iID
-- Start the main transaction
BEGIN TRANSACTION tran_bsp_DeleteResource
if (@a_bDelete = 1)
BEGIN
update t_ModuleResRefVersion
set status = 'H'
where id = @iID
and state <> -1
SELECT @iError = @@ERROR, @iRowCount = @@ROWCOUNT
IF @iRowCount = 0 AND @iError = 0 SET @iError = -1
IF (@iError <> 0) GOTO ON_ERROR
update t_ModuleResRef
set CurrentModuleResRefVersionID = NULL
from t_ModuleResRefVersion mrrv
where mrrv.id = @iID
and t_ModuleResRef.ModuleID = mrrv.ModuleID
and t_ModuleResRef.ResRefID = mrrv.ResRefID
set @iError = @@ERROR
if (@iError <> 0) GOTO ON_ERROR
END
ELSE
BEGIN
IF (@a_bReWrite = 1)
BEGIN
-- We do not delete the main table
INSERT INTO @tResourceTables(TableName)
select lower(rt.name)
from t_ResourceDefinition rd
join t_ResRef rr on rd.ResType = rr.ResType
join t_ModuleResRefVersion mrrv on rr.id = mrrv.resrefid
and mrrv.id = @iID
join t_ResourceTableRelationship rtr1 on rtr1.FullPath like convert(varchar(10),rd.BaseResourceTableID) + '.%'
and rtr1.FullPath <> convert(varchar(10),rd.BaseResourceTableID) + '.'
join t_ResourceTables rt on rt.id = rtr1.ChildResourceTableID
order by level desc
END
ELSE
BEGIN
-- We are performing an undo checkout at this point
-- We have to delete the string tables
INSERT INTO @tResourceTables(TableName)
VALUES ('t_stringtext')
INSERT INTO @tResourceTables(TableName)
VALUES ('t_stringversion')
-- We delete all the tables
INSERT INTO @tResourceTables(TableName)
select lower(rt.name)
from t_ResourceDefinition rd
join t_ResRef rr on rd.ResType = rr.ResType
join t_ModuleResRefVersion mrrv on rr.id = mrrv.resrefid
and mrrv.id = @iID
join t_ResourceTableRelationship rtr1 on rtr1.FullPath like convert(varchar(10),rd.BaseResourceTableID) + '.%'
join t_ResourceTables rt on rt.id = rtr1.ChildResourceTableID
order by level desc
END
set @iError = @@ERROR
if (@iError <> 0) GOTO ON_ERROR
select @iTotalCount = count(*) from @tResourceTables
SET @iCounter = 1
WHILE @iCounter <= @iTotalCount
BEGIN
SELECT @sTableName = TableName
FROM @tResourceTables
WHERE TID = @iCounter
set @sql = 'delete from ' + @sTableName +
' where moduleresrefversionid = ' + convert(varchar(10),@iID)
exec sp_executesql @sql
set @iError = @@ERROR
if (@iError <> 0) GOTO ON_ERROR
SET @iCounter = @iCounter + 1
END
IF (@a_bUndoCheckOut = 1)
BEGIN
-- Now we clean up the version records
UPDATE t_ModuleResRef
SET ScratchModuleResRefVersionID = NULL
FROM t_ModuleResRefVersion mrrv
WHERE mrrv.ModuleID = t_ModuleResRef.ModuleID
AND mrrv.ResRefID = t_ModuleResRef.ResRefID
AND mrrv.id = @iID
set @iError = @@ERROR
if (@iError <> 0) GOTO ON_ERROR
DELETE FROM t_ModuleResRefVersion
WHERE ID = @iID
set @iError = @@ERROR
if (@iError <> 0) GOTO ON_ERROR
-- Now we can cleanup any strings that were created in scratch
DELETE FROM t_String
WHERE not exists
(SELECT 'x' FROM t_StringVersion sv
JOIN t_ModuleResRefVersion mrrv on sv.ModuleResRefVersionID = mrrv.ID
where sv.stringid = t_String.id)
set @iError = @@ERROR
if (@iError <> 0) GOTO ON_ERROR
END
END
COMMIT TRANSACTION tran_bsp_DeleteResource
return 0
---------------------------------------------------------------------
ON_ERROR:
---------------------------------------------------------------------
if (@iError = 0)
set @iError = -1
ROLLBACK TRANSACTION
return @iError
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
GRANT EXECUTE ON [dbo].[bsp_DeleteResource] TO [bw_db_write]
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE PROCEDURE [dbo].[bsp_DeleteString]
@a_iID int,
@a_iModuleResRefVersionID int,
@a_iStringLanguageVariantID int
AS
declare @iError int
set @iError = 0
-- Start the main transaction
BEGIN TRANSACTION tran_bsp_DeleteString
DELETE FROM t_StringText
WHERE StringID = @a_iID
AND ModuleResRefVersionID = @a_iModuleResRefVersionID
AND StringLanguageVariantID = @a_iStringLanguageVariantID
set @iError = @@ERROR
if (@iError <> 0) GOTO ON_ERROR
DELETE FROM t_StringVersion
WHERE StringID = @a_iID
AND ModuleResRefVersionID = @a_iModuleResRefVersionID
set @iError = @@ERROR
if (@iError <> 0) GOTO ON_ERROR
DELETE FROM t_String
WHERE id = @a_iID
AND not exists
(SELECT 1
FROM t_moduleresrefversion mrrv1
JOIN t_ModuleResRefVersion mrrv on mrrv.moduleid = mrrv1.moduleid
and mrrv.resrefid = mrrv1.resrefid
JOIN t_StringVersion sv on sv.ModuleResRefVersionID = mrrv.ID
and sv.stringid = t_String.id
WHERE mrrv1.id = @a_iModuleResRefVersionID)
set @iError = @@ERROR
if (@iError <> 0) GOTO ON_ERROR
COMMIT TRANSACTION tran_bsp_DeleteString
return 0
---------------------------------------------------------------------
ON_ERROR:
---------------------------------------------------------------------
if (@iError = 0)
set @iError = -1
ROLLBACK TRANSACTION
return @iError
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
GRANT EXECUTE ON [dbo].[bsp_DeleteString] TO [bw_db_write]
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
------------------------------------------------------------------------
-- Stored Proc: bsp_DetermineVOScriptLineCharacters
------------------------------------------------------------------------
-- Owned By: Chris Christou
-- Created On: February 22, 2007
--
-- Description: Determines the Character that is mapped to every line
-- that appears in a Conversation. Lines that could not be mapped
-- to a character are not returned.
--
-- NOTE: data is placed in t_VOScriptLineCharacterInternal, keyed on
-- @@SPID. The caller is responsible for cleaning up this data.
--
-- NOTE: When a VOScriptID is not specified, the result set includes
-- resources that do not have a t_VOScript entry. When a VOScriptID
-- is specified, the result set only includes the resource that
-- corresponds to that VOScript.
--
-- Parameters:
--
-- a_iVOScriptID - Set as follows:
-- o NULL when looking up characters for lines on all VO Scripts
-- o VOScriptID of a specific VOScript
-- a_iModuleResRefVersionID - Set as follows:
-- o NULL will use the live/current version of needed resources
-- o MRRVersionID will use that specific version of a resource.
-- Only set a versionID when using a specific VOScriptID.
--
------------------------------------------------------------------------
CREATE PROCEDURE [dbo].[bsp_DetermineVOScriptLineCharacters]
@a_iVOScriptID int,
@a_iModuleResRefVersionID int
AS
SET NOCOUNT ON
DECLARE @iError int
BEGIN TRANSACTION tranDetermineVOScriptChars
CREATE TABLE #tblDLGTagCharacter
(
[ModuleID] int,
[ResRefID] int,
[ModuleResRefVersionID] int,
[Tag] varchar(32),
[CharacterModuleID] int,
[CharacterResRefID] int
)
------------------------------------------------------------------------
-- Ensure the process-key space we will be using is empty.
------------------------------------------------------------------------
DELETE FROM t_VOScriptLineCharacterInternal WHERE [SPID] = @@SPID
SELECT @iError = @@ERROR
IF (@iError <> 0) GOTO ON_ERROR
------------------------------------------------------------------------
-- Look up the Tags - Character
------------------------------------------------------------------------
INSERT INTO #tblDLGTagCharacter
([ModuleID], [ResRefID],
[ModuleResRefVersionID],
[Tag],
[CharacterModuleID], [CharacterResRefID])
EXEC @iError = [dbo].[bsp_GetConversationTagToCharacterList] @a_iModuleResRefVersionID, 1, 0
IF (@iError <> 0) GOTO ON_ERROR
------------------------------------------------------------------------
-- Thin out tag-character information belonging to resources for
-- scripts that we are not interested in. If @a_iVOScriptID is NULL,
-- leave all this data alone.
------------------------------------------------------------------------
IF (@a_iVOScriptID IS NOT NULL)
BEGIN
DELETE t
FROM #tblDLGTagCharacter t
WHERE NOT EXISTS
(
SELECT 1
FROM t_VOScript vos
WHERE vos.[ResourceModuleID] = t.[ModuleID]
AND vos.[ResourceResRefID] = t.[ResRefID]
AND @a_iVOScriptID = vos.[ID]
)
SELECT @iError = @@ERROR
IF (@iError <> 0) GOTO ON_ERROR
END
------------------------------------------------------------------------
-- Prepare a list of conversation lines and their resolved Speaker
-- tags.
-- Add the information into our table. This is the lines and
-- associated character for every line of vo script resource.
------------------------------------------------------------------------
-- NOTE: April 23, 2008, Chris Christou
-- With the Exception of SoundSets, we will strip all Character
-- mappings from blank lines. There are issues with scripting
-- conditional lines being mapped to multiple (or none) characters,
-- but since these lines are blank, no character is necessary.
--
-- Soundsets will be excluded from this -- many of the soundset lines
-- are blank to denote that they are placeholder lines. We want
-- these to be mapped to the soundset owner so that the line counts
-- will be properly reflected.
------------------------------------------------------------------------
INSERT INTO t_VOScriptLineCharacterInternal
( [SPID], [ResourceModuleID], [ResourceResRefID],
[ResourceModuleResRefVersionID], [StringID],
[CharacterModuleID], [CharacterResRefID] )
SELECT
@@SPID, t.[ModuleID], t.[ResRefID],
t.[ModuleResRefVersionID], cl.[TextStringID],
t.[CharacterModuleID], t.[CharacterResRefID]
FROM #tblDLGTagCharacter t
JOIN t_Conversation c WITH ( NOLOCK )
ON t.[ModuleResRefVersionID] = c.[ModuleResRefVersionID]
JOIN t_ConversationLine cl WITH ( NOLOCK )
ON c.[ModuleResRefVersionID] = cl.[ModuleResRefVersionID]
AND t.[Tag] = CASE WHEN cl.[Speaker] = '' THEN c.[DefaultNPCSpeaker] ELSE cl.[Speaker] END
JOIN t_StringText st WITH ( NOLOCK )
ON st.[ModuleResRefVersionID] = cl.[ModuleResRefVersionID]
AND st.[StringID] = cl.[TextStringID]
JOIN t_ModuleResRefVersion mrv WITH ( NOLOCK )
ON st.[ModuleResRefVersionID] = mrv.[ID]
WHERE
( st.[WordCount] > 0 OR
(LEFT(mrv.[Name], 3) = 'ss_' AND cl.[IsPC] = 0) )
SELECT @iError = @@ERROR
IF (@iError <> 0) GOTO ON_ERROR
------------------------------------------------------------------------
-- Dump our temp objects
------------------------------------------------------------------------
DROP TABLE #tblDLGTagCharacter
COMMIT TRANSACTION tranDetermineVOScriptChars
SET NOCOUNT OFF
return 0
------------------------------------------------------------------------
ON_ERROR:
------------------------------------------------------------------------
ROLLBACK TRANSACTION
SET NOCOUNT OFF
return @iError
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
GRANT EXECUTE ON [dbo].[bsp_DetermineVOScriptLineCharacters] TO [bw_db_write]
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
------------------------------------------------------------------------
-- Stored Proc: bsp_DoNotReRecordVOScriptString
------------------------------------------------------------------------
-- Owned By: Chris Christou
-- Created On: February 21, 2007
-- Description: Marks an InstanceString so that it does not indicate
-- that it requires recording. Call this on active strings only.
-- If the string is modified after this datetime, it will once
-- again require recording.
--
-- Parameters
-- a_iVOScriptInstanceStringID - InstanceStringID to mark as
-- presently not requiring recording.
-- a_sComment - User comment to associate with the ReRecord action
------------------------------------------------------------------------
CREATE PROCEDURE [dbo].[bsp_DoNotReRecordVOScriptString]
@a_iVOScriptInstanceStringID int,
@a_sComment nText
AS
SET NOCOUNT ON
DECLARE @iError int
BEGIN TRANSACTION tranDoNotReRecord
------------------------------------------------------------------------
-- Update the CompareDate on the record of interest
-- Set it to the current DateTime so that the string
-- will not indicate it needs recording unless somebody
-- changes it after this point.
------------------------------------------------------------------------
UPDATE vosis
SET [CompareDate] = GetDate()
FROM t_VOScriptInstanceString vosis
WHERE [ID] = @a_iVOScriptInstanceStringID
SELECT @iError = @@ERROR
IF (@iError <> 0) GOTO ON_ERROR
------------------------------------------------------------------------
-- Add new InstanceStringStatus record
------------------------------------------------------------------------
INSERT INTO t_VOScriptInstanceStringStatus
([VOScriptInstanceStringID], [Active], [Action],
[CompareDate], [Revision], [Comment])
SELECT vosis.[ID], 'A', 'D',
vosis.[CompareDate], vosis.[Revision], @a_sComment
FROM t_VOScriptInstanceString vosis
WHERE [ID] = @a_iVOScriptInstanceStringID
SELECT @iError = @@ERROR
IF (@iError <> 0) GOTO ON_ERROR
COMMIT TRANSACTION tranDoNotReRecord
SET NOCOUNT OFF
return 0
------------------------------------------------------------------------
ON_ERROR:
------------------------------------------------------------------------
ROLLBACK TRANSACTION
SET NOCOUNT OFF
return @iError
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
GRANT EXECUTE ON [dbo].[bsp_DoNotReRecordVOScriptString] TO [bw_db_write]
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
------------------------------------------------------------------------
-- Stored Proc: bsp_GetAllStringsRequiringRecording
------------------------------------------------------------------------
-- Owned By: Chris Christou
-- Created On: June 15, 2007
-- Description: Returns all strings requiring VO Recording
-- per Character/Resource.
--
-- Used by Web Report.
--
-- Parameters
-- a_iStringLanguageID - IN
-- The Language that the script data should be retrieved for.
-- a_bIncludeBlankLines - IN
-- - set to 1 (true) to include blank lines in the count
-- - set to 0 (false) to exclude blank lines in the count
--
------------------------------------------------------------------------
CREATE PROCEDURE [dbo].[bsp_GetAllStringsRequiringRecording]
@a_iStringLanguageID int,
@a_bIncludeBlankLines bit
AS
SET NOCOUNT ON
DECLARE @iError int
------------------------------------------------------------------------
-- Map the resource lines to Characters
------------------------------------------------------------------------
-- Then do the mapping
EXEC @iError = [dbo].[bsp_DetermineVOScriptLineCharacters] NULL, NULL
IF (@iError <> 0) GOTO ON_ERROR
------------------------------------------------------------------------
-- Look up the Requires Recording datetimestamp for each of these
-- character strings. For english this is VORequestOn, and for
-- foreign, this is ImportedOn. Store this data locally for now.
------------------------------------------------------------------------
DECLARE @tblStringVORequest TABLE (
[StringID] int,
[StringVariantID] int,
[VORequestOn] datetime NOT NULL,
[VORecordedOn] datetime NULL,
[Text] nText)
IF (@a_iStringLanguageID = dbo.udf_GetProjectStringLanguageID())
BEGIN
-- Load English strings + VORequestOn dates
INSERT INTO @tblStringVORequest
([StringID],
[StringVariantID], [VORequestOn],
[Text])
SELECT st.[StringID],
1, st.[VORequestOn],
st.[Text]
FROM t_StringText st
JOIN t_VOScriptLineCharacterInternal voslci
ON [SPID] = @@SPID
AND st.[StringID] = voslci.[StringID]
AND st.[ModuleResRefVersionID] = voslci.[ResourceModuleResRefVersionID]
AND st.[StringLanguageVariantID] = 1
AND (@a_bIncludeBlankLines = 1 OR st.[WordCount] > 0)
SELECT @iError = @@ERROR
IF (@iError <> 0) GOTO ON_ERROR
UPDATE voRequest
SET voRequest.[VORecordedOn] = vosis.[CompareDate]
FROM @tblStringVORequest voRequest
JOIN t_VOScriptInstanceString vosis
ON voRequest.[StringID] = vosis.[StringID]
AND vosis.[Active] = 'A'
AND vosis.[Status] = 'P'
AND vosis.[IsForeign] = 0
SELECT @iError = @@ERROR
IF (@iError <> 0) GOTO ON_ERROR
END
ELSE
BEGIN
-- Load Foreign strings (all variants) + ImportedOn dates
INSERT INTO @tblStringVORequest
([StringID],
[StringVariantID], [VORequestOn],
[Text])
SELECT slvt.[StringID],
slv.[StringVariantID], sis.[ImportedOn],
slvt.[Text]
FROM t_StringLanguageVariantText slvt
JOIN t_StringImportSession sis
ON slvt.[StringImportSessionID] = sis.[ID]
AND (@a_bIncludeBlankLines = 1 OR slvt.[IsBlank] = 0)
JOIN t_StringLanguageVariant slv
ON slvt.[StringLanguageVariantVersionID] = slv.[CurrentStringLanguageVariantVersionID]
AND slv.[StringLanguageID] = @a_iStringLanguageID
JOIN t_VOScriptLineCharacterInternal voslci
ON [SPID] = @@SPID
AND slvt.[StringID] = voslci.[StringID]
SELECT @iError = @@ERROR
IF (@iError <> 0) GOTO ON_ERROR
UPDATE voRequest
SET voRequest.[VORecordedOn] = vosis.[CompareDate]
FROM @tblStringVORequest voRequest
JOIN t_VOScriptInstanceString vosis
ON voRequest.[StringID] = vosis.[StringID]
AND vosis.[Active] = 'A'
AND vosis.[Status] = 'P'
JOIN t_StringLanguageVariantVersion slvv
ON vosis.[StringLanguageVariantVersionID] = slvv.[ID]
JOIN t_StringLanguageVariant slv
ON slvv.[StringLanguageVariantID] = slv.[ID]
AND slv.[StringLanguageID] = @a_iStringLanguageID
AND slv.[StringVariantID] = voRequest.[StringVariantID]
SELECT @iError = @@ERROR
IF (@iError <> 0) GOTO ON_ERROR
END
------------------------------------------------------------------------
-- Make the Requires Recording Comparison
------------------------------------------------------------------------
SELECT
voChar.[Name] as [CharacterName],
mrvRes.[Name] as [ResourceResRef],
voslci.[ResourceModuleResRefVersionID],
voRequest.[StringID],
sv.[Name] as [Variant],
voRequest.[Text]
FROM @tblStringVORequest voRequest
JOIN t_VOScriptLineCharacterInternal voslci
ON voslci.[SPID] = @@SPID
AND voRequest.[StringID] = voslci.[StringID]
JOIN t_ModuleResRef mrChar
ON voslci.[CharacterModuleID] = mrChar.[ModuleID]
AND voslci.[CharacterResRefID] = mrChar.[ResRefID]
JOIN t_Character voChar
ON mrChar.[CurrentModuleResRefVersionID] = voChar.[ModuleResRefVersionID]
JOIN t_ModuleResRefVersion mrvRes
ON voslci.[ResourceModuleResRefVersionID] = mrvRes.[ID]
JOIN t_StringVariant sv
ON voRequest.[StringVariantID] = sv.[ID]
WHERE
(
voRequest.[VORecordedOn] IS NULL OR
voRequest.[VORequestOn] > voRequest.[VORecordedOn]
)
SELECT @iError = @@ERROR
IF (@iError <> 0) GOTO ON_ERROR
-- Remove the temp data
DELETE FROM t_VOScriptLineCharacterInternal WHERE [SPID] = @@SPID
SELECT @iError = @@ERROR
IF (@iError <> 0) GOTO ON_ERROR
SET NOCOUNT OFF
return 0
------------------------------------------------------------------------
ON_ERROR:
------------------------------------------------------------------------
SET NOCOUNT OFF
return @iError
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
GRANT EXECUTE ON [dbo].[bsp_GetAllStringsRequiringRecording] TO [bw_db_read]
GO
GRANT EXECUTE ON [dbo].[bsp_GetAllStringsRequiringRecording] TO [bw_db_write]
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE PROCEDURE [dbo].[bsp_GetAreaList]
@a_iModuleID INT,
@a_bUseModuleTree BIT
AS
DECLARE @iReturn INT
SELECT
c.ModuleResRefVersionID,
mrrv1.Name as Name,
c.Comments,
c.AreaListResRefID,
CASE isnull(mrrv2.ID, -1) WHEN -1
THEN 0
ELSE 1
END as CheckedOut
FROM dbo.udf_GetModuleHierarchy(@a_iModuleID, @a_bUseModuleTree) mt
JOIN t_ModuleResRef mrr ON mt.ModuleID = mrr.ModuleID
JOIN t_ModuleResRefVersion mrrv1 ON mrr.CurrentModuleResRefVersionID = mrrv1.ID
LEFT JOIN t_ModuleResRefVersion mrrv2 ON mrr.ScratchModuleResRefVersionID = mrrv2.ID
JOIN t_Area c ON mrrv1.ID = c.ModuleResRefVersionID
SELECT @iReturn = @@ERROR
IF (@iReturn != 0) GOTO ON_ERROR
---------------------------------------------------------------------
ON_ERROR:
---------------------------------------------------------------------
RETURN @iReturn
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
GRANT EXECUTE ON [dbo].[bsp_GetAreaList] TO [bw_db_read]
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE PROCEDURE [dbo].[bsp_GetAreaListList]
@a_iModuleID INT,
@a_bUseModuleTree BIT
AS
DECLARE @iReturn INT
SELECT
mrr.ResRefID,
mrrv1.Name,
r.Description
FROM dbo.udf_GetModuleHierarchy(@a_iModuleID, @a_bUseModuleTree) mt
JOIN t_ModuleResRef mrr ON mt.ModuleID = mrr.ModuleID
JOIN t_ModuleResRefVersion mrrv1 ON mrr.CurrentModuleResRefVersionID = mrrv1.ID
JOIN t_AreaList r ON mrrv1.ID = r.ModuleResRefVersionID
SELECT @iReturn = @@ERROR
IF (@iReturn != 0) GOTO ON_ERROR
---------------------------------------------------------------------
ON_ERROR:
---------------------------------------------------------------------
RETURN @iReturn
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
GRANT EXECUTE ON [dbo].[bsp_GetAreaListList] TO [bw_db_read]
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
------------------------------------------------------------------------
-- Stored Proc: bsp_GetCharacterLineCountsPerResource
------------------------------------------------------------------------
-- Owned By: Chris Christou
-- Created On: June 19, 2007
-- Description: Returns a count of each Character's
-- Lines per VO Script.
--
-- This procedure was developed for use with a VO Related Web Report.
--
-- Parameters
-- a_bIncludeBlankLines - set as follows:
-- o 1: includes blank lines
-- o 0: excludes them
--
-- Result Set:
-- CharacterName - Name field from the Character Table
-- CharacterResRef - Character ResRef name
-- Resource - ResRef of Resource (typically a dlg resource)
-- ResourceFolder - Folder of Resource
-- Line Count - Total line count for this character
--
------------------------------------------------------------------------
CREATE PROCEDURE [dbo].[bsp_GetCharacterLineCountsPerResource]
@a_bIncludeBlankLines bit
AS
SET NOCOUNT ON
DECLARE @iError int
------------------------------------------------------------------------
-- Load the Resources/Strings/Characters for our data of interest
------------------------------------------------------------------------
EXEC @iError = [dbo].[bsp_DetermineVOScriptLineCharacters] NULL, NULL
IF (@iError <> 0) GOTO ON_ERROR
SELECT @iError = @@ERROR
IF (@iError <> 0) GOTO ON_ERROR
------------------------------------------------------------------------
-- Return results
------------------------------------------------------------------------
SELECT
c.[Name] as [CharacterName],
mrvChar.[Name] as [CharacterResRef],
mrvRes.[Name] as [Resource],
mrvRes.[Folder] as [ResourceFolder],
COUNT(*) as [LineCount]
FROM t_VOScriptLineCharacterInternal voslci
JOIN t_ModuleResRef mrChar
ON voslci.CharacterModuleID = mrChar.ModuleID
AND voslci.CharacterResRefID = mrChar.ResRefID
JOIN t_ModuleResRefVersion mrvChar
ON mrChar.[CurrentModuleResRefVersionID] = mrvChar.[ID]
JOIN t_ModuleResRefVersion mrvRes
ON voslci.[ResourceModuleResRefVersionID] = mrvRes.[ID]
JOIN t_Character c
ON c.[ModuleResRefVersionID] = mrvChar.[ID]
JOIN t_StringText st
ON voslci.[StringID] = st.[StringID]
AND voslci.[ResourceModuleResRefVersionID] = st.[ModuleResRefVersionID]
AND ( (@a_bIncludeBlankLines = 1) OR (st.[WordCount] > 0) )
WHERE voslci.SPID = @@SPID
GROUP BY
mrvChar.[Name],
c.[Name],
mrvRes.[Name],
mrvRes.[Folder]
SELECT @iError = @@ERROR
IF (@iError <> 0) GOTO ON_ERROR
------------------------------------------------------------------------
-- Remove our temp data
------------------------------------------------------------------------
DELETE FROM t_VOScriptLineCharacterInternal
WHERE [SPID] = @@SPID
SET NOCOUNT OFF
RETURN 0
------------------------------------------------------------------------
ON_ERROR:
------------------------------------------------------------------------
SET NOCOUNT OFF
RETURN @iError
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
GRANT EXECUTE ON [dbo].[bsp_GetCharacterLineCountsPerResource] TO [bw_db_read]
GO
GRANT EXECUTE ON [dbo].[bsp_GetCharacterLineCountsPerResource] TO [bw_db_write]
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE PROCEDURE [dbo].[bsp_GetCharacterList]
@a_iModuleID INT,
@a_bUseModuleTree BIT
AS
DECLARE @iReturn INT
SELECT
c.ModuleResRefVersionID,
CASE c.Name WHEN ''
THEN mrrv1.Name
ELSE c.Name
END as Name,
c.Description,
c.RoleResRefID,
CASE isnull(mrrv2.ID, -1) WHEN -1
THEN 0
ELSE 1
END as CheckedOut
FROM dbo.udf_GetModuleHierarchy(@a_iModuleID, @a_bUseModuleTree) mt
JOIN t_ModuleResRef mrr ON mt.ModuleID = mrr.ModuleID
JOIN t_ModuleResRefVersion mrrv1 ON mrr.CurrentModuleResRefVersionID = mrrv1.ID
LEFT JOIN t_ModuleResRefVersion mrrv2 ON mrr.ScratchModuleResRefVersionID = mrrv2.ID
JOIN t_Character c ON mrrv1.ID = c.ModuleResRefVersionID
SELECT @iReturn = @@ERROR
IF (@iReturn != 0) GOTO ON_ERROR
---------------------------------------------------------------------
ON_ERROR:
---------------------------------------------------------------------
RETURN @iReturn
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
GRANT EXECUTE ON [dbo].[bsp_GetCharacterList] TO [bw_db_read]
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
------------------------------------------------------------------------
-- Stored Proc: bsp_GetCharacterWordAndLineCounts
------------------------------------------------------------------------
-- Owned By: Chris Christou
-- Created On: June 14, 2007
-- Description: Returns a count of each Character's
-- Words and Lines across the VO Scripts.
--
-- This procedure was developed for use with a VO Related Web Report.
--
-- Parameters
-- - None
--
-- Result Set:
-- For each Character, a Word and Line count of every conversation
-- it is known to have VO Participation in.
--
------------------------------------------------------------------------
CREATE PROCEDURE [dbo].[bsp_GetCharacterWordAndLineCounts]
AS
SET NOCOUNT ON
DECLARE @iError int
------------------------------------------------------------------------
-- Load the Resources/Strings/Characters for our data of interest
------------------------------------------------------------------------
EXEC @iError = [dbo].[bsp_DetermineVOScriptLineCharacters] NULL, NULL
IF (@iError <> 0) GOTO ON_ERROR
------------------------------------------------------------------------
-- Prep the data for stats aggregation
------------------------------------------------------------------------
EXEC @iError = [dbo].[bsp_AdjustVOScriptLineCharacterInternalForStats]
IF (@iError <> 0) GOTO ON_ERROR
------------------------------------------------------------------------
-- Return results
------------------------------------------------------------------------
SELECT
mChar.[ID] as [CharacterModuleID], mChar.[Name] as [CharacterModule],
[dbo].[udf_GetTopLevelFolder](mrvChar.[Folder]) as [CharacterTopFolder],
mrvChar.[Folder] as [CharacterFolder], mrvChar.[Name] as [CharacterResRef],
c.[Name] as [CharacterName],
CASE c.[CharacterType]
WHEN 0 THEN 'Major'
WHEN 1 THEN 'Medium'
WHEN 2 THEN 'Minor'
ELSE 'UNKNOWN'
END AS [CharacterType],
mRes.[ID] as [ResourceModuleID], mRes.[Name] as [ResourceModule],
[dbo].[udf_GetTopLevelFolder](mrvRes.[Folder]) as [ResourceTopFolder],
mrvRes.[Folder] as [ResourceFolder], mrvRes.[Name] as [ResourceResRef],
SUM(st.[WordCount]) as [WordCount],
COUNT(*) as [LineCount]
FROM t_VOScriptLineCharacterInternal voslci
JOIN t_ModuleResRefVersion mrvChar
ON voslci.CharacterModuleID = mrvChar.ModuleID
AND voslci.CharacterResRefID = mrvChar.ResRefID
AND mrvChar.[Status] = 'C'
JOIN t_Character c
ON c.[ModuleResRefVersionID] = mrvChar.[ID]
JOIN t_ModuleResRefVersion mrvRes
on mrvRes.[ID] = voslci.[ResourceModuleResRefVersionID]
JOIN t_StringText st
ON voslci.[StringID] = st.[StringID]
AND voslci.[ResourceModuleResRefVersionID] = st.[ModuleResRefVersionID]
JOIN t_Module mRes
on mRes.[ID] = mrvRes.[ModuleID]
JOIN t_Module mChar
on mChar.[ID] = mrvChar.[ModuleID]
WHERE voslci.SPID = @@SPID
GROUP BY
mChar.[ID], mChar.[Name], mrvChar.[Folder], mrvChar.[Name],
c.[Name], c.[CharacterType],
mRes.[ID], mRes.[Name], mrvRes.[Folder], mrvRes.[Name]
SELECT @iError = @@ERROR
IF (@iError <> 0) GOTO ON_ERROR
------------------------------------------------------------------------
-- Remove our temp data
------------------------------------------------------------------------
DELETE FROM t_VOScriptLineCharacterInternal
WHERE [SPID] = @@SPID
SET NOCOUNT OFF
RETURN 0
------------------------------------------------------------------------
ON_ERROR:
------------------------------------------------------------------------
SET NOCOUNT OFF
RETURN @iError
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
GRANT EXECUTE ON [dbo].[bsp_GetCharacterWordAndLineCounts] TO [bw_db_read]
GO
GRANT EXECUTE ON [dbo].[bsp_GetCharacterWordAndLineCounts] TO [bw_db_write]
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
------------------------------------------------------------------------
-- STORED PROCEDURE: bsp_GetConversationTagToCharacterList
------------------------------------------------------------------------
-- Owned By: Chris Christou
-- Created On: December 13, 2006
-- Returns:
-- 0 = success
-- non-zero = error code
--
-- Parameters:
-- @a_iDLGModuleResRefVersionID: set as follows:
-- o NULL to list data from all current conversations
-- o else use a ModResRefVersionID for a specific conversation.
-- @a_bLoadSpeakerTags: set as follows:
-- o 1 (true) loads Speaker Tags
-- o 0 (false) does not load Speaker Tags
-- @a_bLoadListenerTags: set as follows:
-- o 1 (true) loads Listener Tags
-- o 0 (false) does not load Listener Tags
--
-- Description: Gets all Speaker or Listener Tags for Conversation(s)
-- and looks up the corresponding Character for those tags.
--
-- NOTE: if a Tag maps to more than one Character, its an error, but
-- all of the Characters are listed from this stored procedure.
--
-- NOTE: Lines that do not map to a character are not returned at all
------------------------------------------------------------------------
CREATE PROCEDURE [dbo].[bsp_GetConversationTagToCharacterList]
@a_iDLGModuleResRefVersionID int,
@a_bLoadSpeakerTags bit,
@a_bLoadListenerTags bit
AS
SET NOCOUNT ON
DECLARE @iError INT
declare @tblLiveTags TABLE
( [ModuleResRefVersionID] int NOT NULL,
[Listener] varchar(32) NOT NULL,
[Speaker] varchar(32) NOT NULL
)
------------------------------------------------------------------------
-- Collect all LISTENER and SPEAKER TAGS from current conversations
------------------------------------------------------------------------
INSERT @tblLiveTags
([ModuleResRefVersionID], [Listener], [Speaker])
SELECT DISTINCT
cl.[ModuleResRefVersionID],
CASE cl.[Listener]
WHEN '' THEN
CASE cl.[IsPC]
WHEN 0 THEN c.[DefaultNPCListener]
ELSE c.[DefaultPCListener]
END
ELSE cl.[Listener]
END AS [Listener],
CASE cl.[Speaker]
WHEN '' THEN c.[DefaultNPCSpeaker]
ELSE cl.[Speaker]
END AS [Speaker]
FROM t_ConversationLine cl WITH ( NOLOCK )
join t_Conversation c WITH ( NOLOCK ) -- c is needed for the DEFAULT Speaker/Listener resolution
on cl.[ModuleResRefVersionID] = c.[ModuleResRefVersionID]
join t_ModuleResRefVersion mrv
-- mrv is used for Status
on mrv.[ID] = c.[ModuleResRefVersionID]
and
(
(@a_iDLGModuleResRefVersionID IS NULL AND mrv.[Status] = 'C')
OR
(@a_iDLGModuleResRefVersionID IS NOT NULL AND mrv.[ID] = @a_iDLGModuleResRefVersionID)
)
SELECT @iError = @@ERROR
if (@iError <> 0) GOTO ON_ERROR
------------------------------------------------------------------------
-- Make a distinct list of tags, removing PLAYER and PREVSPEAKER tags
------------------------------------------------------------------------
DECLARE @tTags TABLE
( [DlgModuleResRefVersionID] int NOT NULL,
[Tag] varchar(32) NOT NULL
)
INSERT @tTags
SELECT * FROM
(SELECT ModuleResRefVersionID, Listener as [Tag] from @tblLiveTags where @a_bLoadListenerTags = 1
UNION
SELECT ModuleResRefVersionID, Speaker as [Tag] from @tblLiveTags where @a_bLoadSpeakerTags = 1
) x
WHERE x.[Tag] != 'PLAYER'
AND x.[Tag] != 'PREVSPEAKER'
AND x.[Tag] != ''
SELECT @iError = @@ERROR
if (@iError <> 0) GOTO ON_ERROR
------------------------------------------------------------------------
-- Make a collection of what Characters belong to what
-- Creatures and Placeables. We make this here for the following
-- reasons:
-- * This is used more than once in following queries
-- * The older version of this BSP did not use the Module Tree, and
-- it is now necessary to use the module tree (example: CRE in
-- Single Player references CHR in Core Module).
-- NOTES:
-- - This only shows the CRE/PLA that have character associations
-- (this is what we are presently interested in)
-- - This will break if the project allows the same ResRefID to
-- exist in several Modules. Currently this does not happen with
-- Characters.
------------------------------------------------------------------------
DECLARE @tObjectToCharacter TABLE
(
[ObjectModuleResRefVersionID] int NOT NULL,
[ConversationResRefID] int NULL,
[Tag] varchar(32) NOT NULL,
[CharacterModuleID] int NOT NULL,
[CharacterResRefID] int NOT NULL
)
INSERT @tObjectToCharacter
SELECT
currentObject.[ModuleResRefVersionID],
currentObject.[ConversationResRefID],
currentObject.[Tag],
mt.[AssociatedModuleID] as [CharacterModuleID],
currentObject.[CharacterResRefID]
FROM
(
SELECT [ModuleResRefVersionID], mrv.[ModuleID], [ConversationResRefID], [CharacterResRefID], c.[Tag]
FROM t_Creature c WITH ( NOLOCK )
JOIN t_ModuleResRefVersion mrv
ON mrv.[ID] = c.[ModuleResRefVersionID]
AND mrv.[Status] = 'C'
UNION ALL
SELECT [ModuleResRefVersionID], mrv.[ModuleID], [ConversationResRefID], [CharacterResRefID], p.[Tag]
FROM t_Placeable p WITH ( NOLOCK )
JOIN t_ModuleResRefVersion mrv
ON mrv.[ID] = p.[ModuleResRefVersionID]
AND mrv.[Status] = 'C'
) currentObject
JOIN v_ModuleTree mt
ON currentObject.[ModuleID] = mt.[ModuleID]
JOIN t_ModuleResRefVersion mrvChar
ON mrvChar.[ModuleID] = mt.AssociatedModuleID
AND mrvChar.[ResRefID] = currentObject.[CharacterResRefID]
AND mrvChar.Status = 'C'
OPTION ( FORCE ORDER )
-- April 20, 2009: Chris Christou
-- This OPTION FORCE ORDER is important for that query's performance. The difference goes from 23 seconds to 2.5 seconds.
-- In the worse execution, the MRVs being looked up for Characters are being calculated first, which returns too much volume to filter against.
SELECT @iError = @@ERROR
IF (@iError <> 0) GOTO ON_ERROR
------------------------------------------------------------------------
-- Start joining Conversation Tags to Characters
------------------------------------------------------------------------
DECLARE @tTagCharacter TABLE
( [ModuleResRefVersionID] int NOT NULL,
[Tag] varchar(32) NOT NULL,
[CharacterModuleID] int NOT NULL,
[CharacterResRefID] int NOT NULL
)
------------------------------------------------------------------------
-- Join Non-OWNER Tags to Creatures and Placeables
-- to derive the Character resource
--
-- NOTE: This does not take into consideration a scenario
-- where conversations are in one module and the CRE/PLA tags
-- are in another module which may not be in the module tree
-- of the conversation.
------------------------------------------------------------------------
INSERT @tTagCharacter
([ModuleResRefVersionID],
[Tag],
[CharacterModuleID],
[CharacterResRefID])
SELECT
tags.[DlgModuleResRefVersionID],
tags.[Tag],
otc.[CharacterModuleID],
otc.[CharacterResRefID]
FROM @tTags tags
JOIN @tObjectToCharacter otc
ON tags.[Tag] = otc.[Tag] -- NOTE: CASE INSENSITIVE CURRENTLY!
AND tags.[Tag] != 'OWNER'
SELECT @iError = @@ERROR
if (@iError <> 0) GOTO ON_ERROR
------------------------------------------------------------------------
-- JOIN OWNER TAGS to Creatures and Placeables based on
-- CONVERSATION field, to get the Character resource
------------------------------------------------------------------------
INSERT @tTagCharacter
([ModuleResRefVersionID],
[Tag],
[CharacterModuleID],
[CharacterResRefID])
SELECT
tags.[DlgModuleResRefVersionID],
tags.Tag,
otc.CharacterModuleID,
otc.CharacterResRefID
FROM @tObjectToCharacter otc
JOIN t_ModuleResRefVersion mrvObject
ON mrvObject.[ID] = otc.[ObjectModuleResRefVersionID]
JOIN v_ModuleTree mt
ON mt.[ModuleID] = mrvObject.[ModuleID]
JOIN t_ModuleResRefVersion mrvDlg
ON mrvDlg.[ModuleID] = mt.[AssociatedModuleID]
AND mrvDlg.[ResRefID] = otc.[ConversationResRefID]
JOIN @tTags tags
ON tags.[DlgModuleResRefVersionID] = mrvDlg.[ID]
AND tags.[Tag] = 'OWNER'
SELECT @iError = @@ERROR
if (@iError <> 0) GOTO ON_ERROR
------------------------------------------------------------------------
-- SOUND SETS:
-- Look up Conversation tags to Characters for Sound Sets.
-- NOTE: This wouldn't be in here normally, but since sound sets
-- are using the conversation system, this is as good a place as
-- any, and integrates into the system well.
--
-- Only use Characters that are not referencing a soundset that is
-- owned by another Character (when SharedLink is set to 0)
------------------------------------------------------------------------
INSERT @tTagCharacter
([ModuleResRefVersionID],
[Tag],
[CharacterModuleID],
[CharacterResRefID])
SELECT DISTINCT
mrvConv.[ID] as [ConversationMRRVID],
CASE cLine.[Speaker]
WHEN '' THEN conv.[DefaultNPCSpeaker]
ELSE cLine.[Speaker]
END AS [Speaker],
mrvChar.[ModuleID] as [CharacterModuleID],
mrvChar.[ResRefID] as [CharacterResRefID]
FROM t_Character ch
JOIN t_ModuleResRefVersion mrvChar
ON ch.[ModuleResRefVersionID] = mrvChar.[ID]
AND mrvChar.[Status] = 'C' -- Only current Characters
JOIN v_ModuleTree vmt
ON mrvChar.[ModuleID] = vmt.[ModuleID]
JOIN t_ModuleResRefVersion mrvConv
ON mrvConv.[ModuleID] = vmt.[AssociatedModuleID]
AND mrvConv.[ResRefID] = ch.[SoundSetResRefID]
AND (
( (@a_iDLGModuleResRefVersionID IS NULL) AND
(mrvConv.[Status] = 'C')
)
OR
(
mrvConv.[ID] = @a_iDLGModuleResRefVersionID
)
)
JOIN t_Conversation conv
ON mrvConv.[ID] = conv.[ModuleResRefVersionID]
JOIN t_ConversationLine cLine
ON mrvConv.[ID] = cLine.[ModuleResRefVersionID]
WHERE ch.[SoundsetResRefIDIsSharedLink] = 0
option (force order)
SELECT @iError = @@ERROR
if (@iError <> 0) GOTO ON_ERROR
------------------------------------------------------------------------
-- Return Result Set
------------------------------------------------------------------------
SELECT DISTINCT
mrvResource.[ModuleID], mrvResource.[ResRefID],
dtc.[ModuleResRefVersionID],
dtc.[Tag],
dtc.[CharacterModuleID], dtc.[CharacterResRefID]
FROM @tTagCharacter dtc
JOIN t_ModuleResRefVersion mrvResource
ON dtc.[ModuleResRefVersionID] = mrvResource.[ID]
SELECT @iError = @@ERROR
if (@iError <> 0) GOTO ON_ERROR
SET NOCOUNT OFF
return 0
---------------------------------------------------------------------
ON_ERROR:
---------------------------------------------------------------------
SET NOCOUNT OFF
return @iError
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
GRANT EXECUTE ON [dbo].[bsp_GetConversationTagToCharacterList] TO [bw_db_read]
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
------------------------------------------------------------------------
-- Stored Proc: bsp_GetForeignText
------------------------------------------------------------------------
-- Owned By: Chris Christou
-- Created On: March 21, 2007
-- Description: Load Foreign Text (with its accompanying information)
-- All Variants of a language are loaded.
--
-- Parameters
-- a_iStringTableID - StringTableID to load data for
-- o NULL loads from all tables
-- o StringTableID loads text from a particular table
-- a_iOwnerModuleID - OwnerModuleID to load data for, used with StringTableID
-- o NULL loads all strings from the table
-- o OwnerModuleID loads text for a particular owner module from a string table
-- a_iStringLanguageID - StringLanguageID of Text to Load. Set as follows:
-- o NULL to load all languages
-- o StringLanguageID to load one language only
-- a_iStringTypeID - StringTypeID of text to load. Set as follows:
-- o NULL to load for all StringTypes
-- o StringTypeID to load text from one Stringtype
-- a_iModuleResRefVersionID - ModuleResRefVersionID of resource to load data for
-- o NULL loads from current version of all resources
-- o ModuleResRefVersionID loads text from a particular
-- version of one resource.
-- a_dtImportedBefore:
-- o NULL or 0 - strings returned are the current (live) snapshot
-- o Any date - strings returned are the most recent
-- versions Imported before this time
--
------------------------------------------------------------------------
CREATE PROCEDURE [dbo].[bsp_GetForeignText]
@a_iStringTableID int,
@a_iOwnerModuleID int,
@a_iStringLanguageID int,
@a_iStringTypeID int,
@a_iModuleResRefVersionID int,
@a_dtImportedBefore datetime
AS
SET NOCOUNT ON
DECLARE @iError int
------------------------------------------------------------------------
-- We documented that @a_dtImportedBefore could be 0 but this isn't
-- supported unless we set it to NULL
------------------------------------------------------------------------
IF (@a_dtImportedBefore = 0)
BEGIN
SET @a_dtImportedBefore = NULL
END
------------------------------------------------------------------------
-- Determine the StringLanguageVariantVersions that contain
-- the text we wish to return.
-- (Also serves as the Language Filter)
------------------------------------------------------------------------
DECLARE @tVariantVersionsToUse TABLE
(
[StringLanguageVariantID] int,
[StringLanguageVariantVersionID] int
)
INSERT INTO @tVariantVersionsToUse
SELECT
slv.[ID] as [StringLanguageVariantID],
MAX(slvv.[ID]) AS [StringLanguageVariantVersionID]
FROM t_StringLanguageVariant slv with ( nolock )
JOIN t_StringLanguageVariantVersion slvv with ( nolock )
ON slv.[ID] = slvv.[StringLanguageVariantID]
AND (slvv.[Status] = 'C' OR slvv.[Status] = 'H')
JOIN t_StringImportSession sis with ( nolock )
ON slvv.[StringImportSessionID] = sis.[ID]
AND (@a_dtImportedBefore IS NULL OR sis.[ImportedOn] < @a_dtImportedBefore)
WHERE (@a_iStringLanguageID IS NULL OR @a_iStringLanguageID = slv.[StringLanguageID])
GROUP BY slv.[ID]
SELECT @iError = @@ERROR
IF (@iError <> 0) GOTO ON_ERROR
------------------------------------------------------------------------
-- Create the ModuleResRefVersionID Filter
-- Determine which ModuleResRefVersionIDs we will use
------------------------------------------------------------------------
DECLARE @tResourceVersionIDsToUse TABLE
(
[ModuleResRefVersionID] int
)
IF (@a_iModuleResRefVersionID IS NULL)
BEGIN
INSERT @tResourceVersionIDsToUse
SELECT [ID]
FROM t_ModuleResRefVersion
WHERE [Status] = 'C'
END
ELSE
BEGIN
INSERT @tResourceVersionIDsToUse
VALUES (@a_iModuleResRefVersionID)
END
SELECT @iError = @@ERROR
IF (@iError <> 0) GOTO ON_ERROR
------------------------------------------------------------------------
-- Create the StringID Filter
-- Determine which StringIDs we will use based on the
-- StringType and String Table parameters.
--
-- NOTE: We break this stuff up very explicitly in order to
-- avoid hitting tables that are not indexed very well for this
-- type of data.
------------------------------------------------------------------------
-- Use a temp table -- we could have in the hundreds of thousands of values in there
CREATE TABLE #tStringIDFilter
(
[StringID] int
)
IF (@a_iStringTypeID IS NULL) AND (@a_iStringTableID IS NULL)
BEGIN
-- There is no filter by StringType or StringTable
-- Use StringText to look up StringIDs by Module
INSERT #tStringIDFilter
SELECT st.[StringID]
FROM t_StringText st with ( nolock )
JOIN @tResourceVersionIDsToUse mrv
ON st.[ModuleResRefVersionID] = mrv.[ModuleResRefVersionID]
END
ELSE IF (@a_iStringTableID IS NULL)
BEGIN
-- Filter by StringType only
INSERT #tStringIDFilter
SELECT sv.[StringID]
FROM t_StringVersion sv with ( nolock )
JOIN @tResourceVersionIDsToUse mrv
ON sv.[ModuleResRefVersionID] = mrv.[ModuleResRefVersionID]
AND sv.StringTypeID = @a_iStringTypeID
END
ELSE
BEGIN
-- Filter by StringType (optional) and StringTable (always present here)
INSERT #tStringIDFilter
SELECT sv.[StringID]
FROM t_StringVersion sv with ( nolock )
JOIN @tResourceVersionIDsToUse mrv
ON sv.[ModuleResRefVersionID] = mrv.[ModuleResRefVersionID]
AND sv.StringTypeID = ISNULL(@a_iStringTypeID, sv.StringTypeID)
JOIN t_String s with ( nolock )
ON sv.[StringID] = s.[ID]
AND s.[StringTableID] = @a_iStringTableID
JOIN t_ModuleResRefVersion mrrv with ( nolock )
ON mrv.[ModuleResRefVersionID] = mrrv.[ID]
AND (@a_iOwnerModuleID IS NULL OR mrrv.[OwnerModuleID] = @a_iOwnerModuleID)
END
SELECT @iError = @@ERROR
IF (@iError <> 0) GOTO ON_ERROR
------------------------------------------------------------------------
-- Look up the particular Versioned Text, and return the data
------------------------------------------------------------------------
SELECT
slvvt.[StringID],
slv.[StringLanguageID], slv.[StringVariantID],
slv.[ID] as [StringLanguageVariantID],
slvvt.[Text]
FROM #tStringIDFilter s
JOIN t_StringLanguageVariantText slvvt with ( nolock )
ON s.[StringID] = slvvt.[StringID]
JOIN @tVariantVersionsToUse slvvToUse
ON slvvt.[StringLanguageVariantVersionID] = slvvToUse.[StringLanguageVariantVersionID]
JOIN t_StringLanguageVariant slv with ( nolock )
ON slvvToUse.[StringLanguageVariantID] = slv.[ID]
SELECT @iError = @@ERROR
IF (@iError <> 0) GOTO ON_ERROR
DROP TABLE #tStringIDFilter
SET NOCOUNT OFF
return 0
------------------------------------------------------------------------
ON_ERROR:
------------------------------------------------------------------------
SET NOCOUNT OFF
return @iError
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
GRANT EXECUTE ON [dbo].[bsp_GetForeignText] TO [bw_db_read]
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
------------------------------------------------------------------------
-- STORED PROCEDURE: bsp_GetInvalidConversationTagCharacters
------------------------------------------------------------------------
-- Owned By: Chris Christou
-- Created On: April 23, 2007
-- Returns:
-- 0 = success
-- non-zero = error code
--
-- Parameters:
-- none
--
-- Description: Gets all Speaker and Listener Tags for Conversation(s)
-- and reports the following validation errors:
-- - Tags mapping to more than one Character
-- - Tags that do not map to any Characters
--
------------------------------------------------------------------------
CREATE PROCEDURE [dbo].[bsp_GetInvalidConversationTagCharacters]
AS
SET NOCOUNT ON
DECLARE @iError INT
-- @tblDlgSpkrListener = The Resolved Speaker and Listener of Conversation Lines, by resource
DECLARE @tblDlgSpkrListener TABLE
(
[ModuleID] int, [ResRefID] int,
[Speaker] varchar(32),
[Listener] varchar(32)
)
-- @ictcDlgTags = Flat listing of all used Spkr/Listener tags in conversations, by resource
DECLARE @ictcDlgTags TABLE
( [ModuleID] int NOT NULL,
[ResRefID] int NOT NULL,
[Tag] varchar(32) NOT NULL
)
-- #ictcDlgTagCharacter = calculated conversation tags and the characters they map to
CREATE TABLE #ictcDlgTagCharacter
( [ModuleID] int NOT NULL,
[ResRefID] int NOT NULL,
[ModuleResRefVersionID] int NOT NULL,
[Tag] varchar(32) NOT NULL,
[CharacterModuleID] int NOT NULL,
[CharacterResRefID] int NOT NULL
)
-- #ictcResults = Result set to return
CREATE TABLE #ictcResults (
[ModuleID] int,
[ResRefID] int,
[Tag] varchar(32),
[Error] varchar(256)
)
------------------------------------------------------------------------
-- First we get the directory of tags that are mapped to characters
------------------------------------------------------------------------
insert #ictcDlgTagCharacter
exec @iError = [dbo].[bsp_GetConversationTagToCharacterList] null, 1, 1
if (@iError <> 0) GOTO ON_ERROR
------------------------------------------------------------------------
-- List all the current speaker and listener tags on all
-- live conversation strings.
------------------------------------------------------------------------
INSERT @tblDlgSpkrListener
select DISTINCT
mrv.[ModuleID], mrv.[ResRefID],
CASE cl.[Speaker]
WHEN '' THEN c.[DefaultNPCSpeaker]
ELSE cl.[Speaker]
END AS [Speaker],
CASE
WHEN cl.[Listener] != '' THEN cl.[Listener]
WHEN cl.[IsPC] = 1 THEN c.[DefaultPCListener]
ELSE c.[DefaultNPCListener]
END AS [Listener]
from t_ConversationLine cl
join t_Conversation c -- c is needed for the DEFAULT Listener resolution
on cl.[ModuleResRefVersionID] = c.[ModuleResRefVersionID]
join t_ModuleResRefVersion mrv
-- mrv is used to return ModuleID/ResRefID info
on mrv.[ID] = c.[ModuleResRefVersionID]
and mrv.[Status] = 'C'
join t_StringText st
-- thin out blank lines (continue/conditional/... lines)
-- the Speaker and Listener are irrelevant on these lines
on st.[StringID] = cl.[TextStringID]
and st.[ModuleResRefVersionID] = cl.[ModuleResRefVersionID]
and st.[WordCount] > 0
SELECT @iError = @@ERROR
if (@iError <> 0) GOTO ON_ERROR
------------------------------------------------------------------------
-- Collect our Tags together, excluding
-- PLAYER and PREVSPEAKER tags
------------------------------------------------------------------------
INSERT @ictcDlgTags
([ModuleID], [ResRefID], [Tag])
SELECT [ModuleID], [ResRefID], [Tag]
FROM
(SELECT [ModuleID], [ResRefID], [Speaker] as [Tag] FROM @tblDlgSpkrListener
UNION
SELECT [ModuleID], [ResRefID], [Listener] as [Tag] FROM @tblDlgSpkrListener) x
WHERE x.[Tag] != 'PLAYER'
AND x.[Tag] != 'PREVSPEAKER'
SELECT @iError = @@ERROR
if (@iError <> 0) GOTO ON_ERROR
------------------------------------------------------------------------
-- Build up the results to return
------------------------------------------------------------------------
------------------------------------------------------------------------
-- Validation: Find lines where tags map to Characters with blank names
------------------------------------------------------------------------
INSERT #ictcResults
SELECT distinct chars.[ModuleID], chars.[ResRefID],
chars.[Tag],
'Tag maps to Character with blank name'
FROM #ictcDlgTagCharacter chars
JOIN t_ModuleResRef mr
ON chars.[ModuleID] = mr.[ModuleID]
AND chars.[ResRefID] = mr.[ResRefID]
JOIN t_Character c
ON mr.[CurrentModuleResRefVersionID] = c.[ModuleResRefVersionID]
AND c.[Name] like ''
SELECT @iError = @@ERROR
if (@iError <> 0) GOTO ON_ERROR
------------------------------------------------------------------------
-- Validation: Find lines where tags do not map to any characters
------------------------------------------------------------------------
INSERT #ictcResults
SELECT distinct lines.[ModuleID], lines.[ResRefID],
lines.[Tag],
'Tag does not map to any character'
FROM @ictcDlgTags lines
LEFT OUTER JOIN #ictcDlgTagCharacter chars
ON lines.[ModuleID] = chars.[ModuleID]
AND lines.[ResRefID] = chars.[ResRefID]
AND lines.[Tag] = chars.[Tag]
WHERE chars.[ModuleID] IS NULL
SELECT @iError = @@ERROR
if (@iError <> 0) GOTO ON_ERROR
------------------------------------------------------------------------
-- Validation: Find lines that map to more than one character
------------------------------------------------------------------------
DECLARE @tblMultipleCharacterTags TABLE
(
[ModuleID] int, [ResRefID] int, [Tag] varchar(32)
)
INSERT @tblMultipleCharacterTags
SELECT dtc.[ModuleID], dtc.[ResRefID], dtc.[Tag]
FROM #ictcDlgTagCharacter dtc
JOIN @ictcDlgTags dt
ON dtc.[ModuleID] = dt.[ModuleID]
AND dtc.[ResRefID] = dt.[ResRefID]
AND dtc.[Tag] = dt.[Tag]
GROUP BY dtc.[ModuleID], dtc.[ResRefID], dtc.[Tag]
having count(*) > 1
SELECT @iError = @@ERROR
if (@iError <> 0) GOTO ON_ERROR
INSERT #ictcResults
SELECT tc.[ModuleID], tc.[ResRefID], tc.[Tag],
'Multiple Characters: ' + mrv.[Folder] + '\' + mrv.[Name]
FROM #ictcDlgTagCharacter tc
JOIN @tblMultipleCharacterTags mct
ON tc.[ModuleID] = mct.[ModuleID]
AND tc.[ResRefID] = mct.[ResRefID]
AND tc.[Tag] = mct.[Tag]
JOIN t_ModuleResRefVersion mrv
ON mrv.[ModuleID] = tc.[CharacterModuleID]
AND mrv.[ResRefID] = tc.[CharacterResRefID]
AND mrv.[Status] = 'C'
SELECT @iError = @@ERROR
if (@iError <> 0) GOTO ON_ERROR
------------------------------------------------------------------------
-- Validation: Find lines where a Listener tag of PREVSPEAKER
-- refers to the root node (who is the previous speaker in this
-- case???)
------------------------------------------------------------------------
INSERT #ictcResults
SELECT DISTINCT
mrv.[ModuleID], mrv.[ResRefID],
'PREVSPEAKER' as [Tag], 'One or more PREVSPEAKER Listener tags reference the root node' as [Error]
FROM t_ModuleResRefVersion mrv
JOIN t_ConversationTransition ct
on ct.[ModuleResRefVersionID] = mrv.[ID]
and mrv.[Status] = 'C'
and ct.[FromIndex] = -1
JOIN t_ConversationLine cl
ON cl.[ModuleResRefVersionID] = mrv.[ID]
AND cl.[Index] = ct.[ToIndex]
JOIN t_Conversation c
ON c.[ModuleResRefVersionID] = mrv.[ID]
WHERE
CASE
WHEN cl.[Listener] != '' THEN cl.[Listener]
ELSE c.[DefaultNPCListener]
END = 'PREVSPEAKER'
SELECT @iError = @@ERROR
if (@iError <> 0) GOTO ON_ERROR
------------------------------------------------------------------------
-- Return Results
------------------------------------------------------------------------
SELECT
m.[Name] as [Module],
mrv.[Name] as [Conversation],
iResults.[ModuleID], iResults.[ResRefID],
[Tag], [Error]
FROM #ictcResults iResults
JOIN t_Module m
ON iResults.[ModuleID] = m.[ID]
JOIN t_ModuleResRefVersion mrv
ON iResults.[ModuleID] = mrv.[ModuleID]
AND iResults.[ResRefID] = mrv.[ResRefID]
AND mrv.[Status] = 'C'
SELECT @iError = @@ERROR
if (@iError <> 0) GOTO ON_ERROR
drop table #ictcDlgTagCharacter
drop table #ictcResults
SET NOCOUNT OFF
return 0
---------------------------------------------------------------------
ON_ERROR:
---------------------------------------------------------------------
SET NOCOUNT OFF
return @iError
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
GRANT EXECUTE ON [dbo].[bsp_GetInvalidConversationTagCharacters] TO [bw_db_read]
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
------------------------------------------------------------------------
-- STORED PROCEDURE: bsp_GetLocalizationStatistics
------------------------------------------------------------------------
-- Owned By: Chris Christou
-- Created On: November 27, 2006
-- Description: Loads Localization Statistics
-- Resource/StringType Word & Line Counts
-- Text Requiring Translation Word & Line Counts
-- Text Requiring Re-Translation Word & Line Counts
-- Parameters:
-- @a_bCountMajorChanges - set to true if you want to get stats
-- for Major Text Changes (strings that are being re-translated)
-- @a_bCountMinorChanges - set to true if you want to get stats
-- for Minor Text Changes (strings that are being re-translated)
-- @a_bGetResourceCounts:
-- o 1 - include stats by resource in the result set
-- o 0 - exclude stats by resource in the result set
-- @a_bGetStringTypeCounts:
-- o 1 - include stats by string type in the result set
-- o 0 - exclude stats by string type in the result set
--
-- Returns:
-- 0 on success, non-zero on error (error-code @@ERROR is returned)
------------------------------------------------------------------------
CREATE PROCEDURE [dbo].[bsp_GetLocalizationStatistics]
@a_bCountMajorChanges bit,
@a_bCountMinorChanges bit,
@a_bGetResourceCounts bit,
@a_bGetStringTypeCounts bit
AS
SET NOCOUNT ON
DECLARE @iError int
------------------------------------------------------------------------
-- Make a listing of all text, and their translation status.
-- The translation status works as follows:
-- o 0 = string does not need translation
-- o 1 = string needs translation, never before translated
-- o 2 = string needs translation, has been translated before
------------------------------------------------------------------------
declare @results TABLE
(
[ModuleID] int,
[OwnerModuleID] int,
[ResRefID] int,
[StringID] int,
[WordCount] int,
[StringTypeID] int,
[TransStatus] int,
[MRVID] int,
[LastMajorUpdateOn] datetime,
[LastMinorUpdateOn] datetime
);
insert into @results
(
[ModuleID],
[OwnerModuleID],
[ResRefID],
[StringID],
[WordCount],
[StringTypeID],
[TransStatus],
[MRVID],
[LastMajorUpdateOn],
[LastMinorUpdateOn]
)
select
mrv.[ModuleID],
mrv.[OwnerModuleID],
mrv.[ResRefID],
st.[StringID],
st.[WordCount],
sv.[StringTypeID],
1, -- defaults to 1==new if next update doesn't change the line.
mrv.[ID],
st.[LastMajorUpdateOn],
st.[LastMinorUpdateOn]
FROM t_ModuleResRefVersion mrv
JOIN t_StringText st
ON st.[ModuleResRefVersionID] = mrv.[ID]
JOIN t_StringVersion sv
ON sv.[ModuleResRefVersionID] = mrv.[ID]
AND st.[StringID] = sv.[StringID]
where mrv.[Status] = 'C'
SELECT @iError = @@ERROR
if (@iError <> 0) GOTO ON_ERROR
update @results
set [TransStatus] =
CASE
WHEN
(@a_bCountMajorChanges = 1)
AND (r.[LastMajorUpdateOn] > seh.[CompareDate])
THEN 2 -- 2 = updated translation
WHEN
(@a_bCountMinorChanges = 1)
AND (r.[LastMinorUpdateOn] > seh.[CompareDate])
THEN 2 -- 2 = updated translation
ELSE 0 -- 0 = no translation
END
from @results r
JOIN t_StringExportHistory seh
ON seh.[Status] = 'A' -- Only use strings exported before (Active Entries)
AND seh.[StringID] = r.[StringID]
SELECT @iError = @@ERROR
if (@iError <> 0) GOTO ON_ERROR
------------------------------------------------------------------------
-- Tally up the Localization statistics.
-- Two result sets are combined:
-- Loc Stats by Resource, and Loc Stats by String Type
-- The result sets are returned based on the parameters.
-- The statistics are grouped by Module, to allow the caller
-- to filter out data from unneeded Modules.
------------------------------------------------------------------------
SELECT
sts.[ModuleID],
sts.[OwnerModuleID],
sts.[ResRefID],
r.[ResType],
NULL as [StringTypeID],
1 as [IsResource],
SUM(CASE [TransStatus] WHEN 1 THEN [WordCount] ELSE 0 END) as [NewWordsReq],
SUM(CASE [TransStatus] WHEN 2 THEN [WordCount] ELSE 0 END) as [UpdWordsReq],
SUM(WordCount) as [Words],
COUNT(CASE [TransStatus] WHEN 1 THEN 1 ELSE NULL END) as [NewLinesReq],
COUNT(CASE [TransStatus] WHEN 2 THEN 1 ELSE NULL END) as [UpdLinesReq],
COUNT(*) as [Lines],
COUNT(CASE WHEN [TransStatus] = 1 AND [WordCount] > 0 THEN 1 ELSE NULL END) as [NewNonBlankLinesReq],
COUNT(CASE WHEN [TransStatus] = 2 AND [WordCount] > 0 THEN 1 ELSE NULL END) as [UpdNonBlankLinesReq],
COUNT(CASE WHEN [WordCount] > 0 THEN 1 ELSE NULL END) as [NonBlankLines]
FROM @results sts
JOIN t_ResRef r
ON sts.[ResRefID] = r.[ID]
AND (r.[ResType] = 'dlg' OR r.[ResType] = 'plo')
WHERE @a_bGetResourceCounts = 1
GROUP BY [ModuleID], sts.[OwnerModuleID], [ResRefID], r.[ResType]
UNION ALL
SELECT
sts.[ModuleID],
sts.[OwnerModuleID],
NULL AS [ResRefID],
NULL AS [ResType],
sts.[StringTypeID],
0 AS [IsResource],
SUM(CASE [TransStatus] WHEN 1 THEN [WordCount] ELSE 0 END) as [NewWordsReq],
SUM(CASE [TransStatus] WHEN 2 THEN [WordCount] ELSE 0 END) as [UpdWordsReq],
SUM(WordCount) as [Words],
COUNT(CASE [TransStatus] WHEN 1 THEN 1 ELSE NULL END) as [NewLinesReq],
COUNT(CASE [TransStatus] WHEN 2 THEN 1 ELSE NULL END) as [UpdLinesReq],
COUNT(*) as [Lines],
COUNT(CASE WHEN [TransStatus] = 1 AND [WordCount] > 0 THEN 1 ELSE NULL END) as [NewNonBlankLinesReq],
COUNT(CASE WHEN [TransStatus] = 2 AND [WordCount] > 0 THEN 1 ELSE NULL END) as [UpdNonBlankLinesReq],
COUNT(CASE WHEN [WordCount] > 0 THEN 1 ELSE NULL END) as [NonBlankLines]
FROM @results sts
WHERE @a_bGetStringTypeCounts = 1
GROUP BY [ModuleID], sts.[OwnerModuleID], sts.[StringTypeID]
SELECT @iError = @@ERROR
if (@iError <> 0) GOTO ON_ERROR
SET NOCOUNT OFF
return 0
---------------------------------------------------------------------
ON_ERROR:
---------------------------------------------------------------------
SET NOCOUNT OFF
return @iError
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
GRANT EXECUTE ON [dbo].[bsp_GetLocalizationStatistics] TO [bw_db_read]
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
------------------------------------------------------------------------
-- Stored Proc: bsp_GetMostRecentLocalizationDatesForVOScript
------------------------------------------------------------------------
-- Owned By: Chris Christou
-- Created On: August 29, 2007
-- Description: For all the strings that currently belong to a
-- VO Script, the most recent export and import date of these
-- strings is shown for a given language per VO Script.
--
-- These used to be two separate queries, but since we have to
-- look up the VOScriptLineCharacters, we might as well do them
-- both at the same time to save time.
--
-- Export data is language independent, Import data is not.
--
-- Parameters
-- a_iVOScriptID - VOScript ID to look up data on, set as follows:
-- o NULL: Gets data for All VO Scripts
-- o VOScriptID: Gets data for one VO Script
-- a_iStringLanguageID - Language to look up Import data on
--
------------------------------------------------------------------------
CREATE PROCEDURE [dbo].[bsp_GetMostRecentLocalizationDatesForVOScript]
@a_iVOScriptID int,
@a_iStringLanguageID int
AS
SET NOCOUNT ON
DECLARE @iError int
------------------------------------------------------------------------
-- Load the Resources/Strings/Characters for our data of interest
------------------------------------------------------------------------
EXEC @iError = [dbo].[bsp_DetermineVOScriptLineCharacters] @a_iVOScriptID, NULL
IF (@iError <> 0) GOTO ON_ERROR
------------------------------------------------------------------------
-- Return results
------------------------------------------------------------------------
SELECT
vs.[ID] as [VOScriptID],
voExport.[RecentlyExportedOn],
voImport.[RecentlyImportedOn]
FROM t_VOScript vs
LEFT OUTER JOIN
(
-- Calculate the most recent import date for a string belonging to
-- each script
SELECT vos.[ID] as [VOScriptID], MAX(sis.[ImportedOn]) as [RecentlyImportedOn]
FROM t_VOScript vos
JOIN t_VOScriptLineCharacterInternal voslci
ON voslci.[SPID] = @@SPID
AND vos.[ResourceModuleID] = voslci.[ResourceModuleID]
AND vos.[ResourceResRefID] = voslci.[ResourceResRefID]
AND vos.[CharacterModuleID] = voslci.[CharacterModuleID]
AND vos.[CharacterResRefID] = voslci.[CharacterResRefID]
JOIN t_StringLanguageVariantText slvt
ON voslci.[StringID] = slvt.[StringID]
JOIN t_StringImportSession sis
ON slvt.[StringImportSessionID] = sis.[ID]
JOIN t_StringLanguageVariant slv
ON slvt.[StringLanguageVariantVersionID] = slv.[CurrentStringLanguageVariantVersionID]
AND slv.[StringLanguageID] = @a_iStringLanguageID
WHERE ISNULL(@a_iVOScriptID, vos.[ID]) = vos.[ID]
GROUP BY vos.[ID]
) voImport
ON vs.[ID] = voImport.[VOScriptID]
LEFT OUTER JOIN
(
-- Calculate the most recent export date for a string belonging to
-- each script
SELECT vos.[ID] as [VOScriptID], MAX(sel.[CreatedOn]) as [RecentlyExportedOn]
FROM t_VOScript vos
JOIN t_VOScriptLineCharacterInternal voslci
ON voslci.[SPID] = @@SPID
AND vos.[ResourceModuleID] = voslci.[ResourceModuleID]
AND vos.[ResourceResRefID] = voslci.[ResourceResRefID]
AND vos.[CharacterModuleID] = voslci.[CharacterModuleID]
AND vos.[CharacterResRefID] = voslci.[CharacterResRefID]
JOIN t_StringExportHistory seh
ON voslci.[StringID] = seh.[StringID]
AND seh.[Status] = 'A'
JOIN t_StringExportLabel sel
ON seh.[StringExportLabelID] = sel.[ID]
WHERE ISNULL(@a_iVOScriptID, vos.[ID]) = vos.[ID]
GROUP BY vos.[ID]
) voExport
ON vs.[ID] = voExport.[VOScriptID]
------------------------------------------------------------------------
-- Remove our temp data
------------------------------------------------------------------------
DELETE FROM t_VOScriptLineCharacterInternal
WHERE [SPID] = @@SPID
SELECT @iError = @@ERROR
IF (@iError <> 0) GOTO ON_ERROR
SET NOCOUNT OFF
RETURN 0
------------------------------------------------------------------------
ON_ERROR:
------------------------------------------------------------------------
SET NOCOUNT OFF
RETURN @iError
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
GRANT EXECUTE ON [dbo].[bsp_GetMostRecentLocalizationDatesForVOScript] TO [bw_db_write]
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE PROCEDURE [dbo].[bsp_GetResourceHistoryListByID]
@a_iResRefID int
AS
declare @iResRefID int
set @iResRefID = @a_iResRefID
select mrrv.resrefid, null, mrrv.moduleid, mrrv.ownermoduleid, mrrv.id, mrrv.RevisionID, rr1.restype,
mrrv.name, mrrv.folder, cast( dbo.udf_GetResourceName(mrrv.id) as varchar(64) ) ,
mrrv.username, mrrv.date,
null, null, null, null, null,
mrrv.state,
mrrv.comment,
case mrrv.status
when 'H' then 1
else 0
end
from t_moduleresrefversion mrrv
join t_ResRef rr1 on mrrv.resrefid = rr1.id
where mrrv.ResRefid = @iResRefID
and (mrrv.status in ('H', 'C')
or (mrrv.status = 'S' and mrrv.username = suser_sname())
)
order by mrrv.RevisionID
IF (@@ERROR <> 0) GOTO ON_ERROR
return 0
---------------------------------------------------------------------
ON_ERROR:
---------------------------------------------------------------------
return @@ERROR
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
GRANT EXECUTE ON [dbo].[bsp_GetResourceHistoryListByID] TO [bw_db_read]
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE PROCEDURE [dbo].[bsp_GetResourceInfoByID]
@a_iModuleID int,
@a_iResRefID int,
@a_iVersionID int,
@a_bUseModuleTree bit,
@a_bReturnVersionInfo bit,
@a_dtCheckedInBefore datetime,
@a_bIncludeDeletedResources bit
AS
SET NOCOUNT ON
DECLARE @iError INT
declare @iModuleID int
declare @iResRefID int
declare @iVersionID int
set @iModuleID = @a_iModuleID
set @iResRefID = @a_iResRefID
set @iVersionID = @a_iVersionID
------------------------------------------------------------------------
-- If the user is not passing in a time, they want the current data.
-- Set it to a point far in the future.
------------------------------------------------------------------------
IF (ISNULL(@a_dtCheckedInBefore, 0) != 0)
AND (@iVersionID = 0)
BEGIN
SET @iVersionID = -1 -- This ensures that if the date is too old, there is no version returned
SELECT @iVersionID = omrrv.[ID]
FROM t_ModuleResRefVersion omrrv
WHERE omrrv.[ModuleID] = @iModuleID
AND omrrv.[ResRefID] = @iResRefID
AND ([Status] = 'C' OR [Status] = 'H')
AND omrrv.[Date] =
(
SELECT MAX([Date])
FROM t_ModuleResRefVersion
WHERE [Date] < @a_dtCheckedInBefore
AND [ModuleID] = omrrv.[ModuleID]
AND [ResRefID] = omrrv.[ResRefID]
AND ([Status] = 'C' OR [Status] = 'H') -- scratch records do not count here
)
END
------------------------------------------------------------------------
-- If we are looking for the deleted resources,
-- find the head version id of the resource in question
------------------------------------------------------------------------
IF ((@a_bIncludeDeletedResources = 1)
AND (ISNULL (@a_dtCheckedInBefore, 0) = 0)
AND (@a_iVersionID = 0))
BEGIN
-- Get the module resref version id
SELECT @iVersionID = MAX (omrrv.[ID])
FROM dbo.udf_GetModuleHierarchy(@iModuleID, @a_bUseModuleTree) mt
JOIN t_ModuleResRefVersion omrrv ON mt.ModuleID = omrrv.[ModuleID]
AND omrrv.[ResRefID] = @iResRefID
AND ([Status] = 'C' OR [Status] = 'H')
END
if (@iVersionID != 0)
select rr1.id, 1, mrr.moduleid,
CASE isnull(mrrv2.id,-1)
WHEN -1 THEN mrrv1.ownermoduleid
ELSE
case mrrv2.username when suser_sname()
then mrrv2.ownermoduleid
else mrrv1.ownermoduleid
end
end,
CASE @a_bReturnVersionInfo
WHEN 1 THEN
CASE isnull(mrrv2.id,-1)
WHEN -1 THEN mrrv1.[ID]
ELSE
CASE mrrv2.username
WHEN suser_sname() then mrrv2.[ID]
ELSE mrrv1.[ID]
END
END
ELSE NULL
END, -- Version (by @a_bReturnVersionInfo)
CASE @a_bReturnVersionInfo
WHEN 1 THEN
CASE isnull(mrrv2.id,-1)
WHEN -1 THEN mrrv1.[RevisionID]
ELSE
CASE mrrv2.username
WHEN suser_sname() then mrrv2.[RevisionID]
ELSE mrrv1.[RevisionID]
END
END
ELSE NULL
END, -- RevisionID (by @a_bReturnVersionInfo)
rr1.restype,
CASE isnull(mrrv2.id,-1)
WHEN -1 THEN mrrv1.name
ELSE
case mrrv2.username when suser_sname()
then mrrv2.name
else mrrv1.name
end
end,
CASE isnull(mrrv2.id,-1)
WHEN -1 THEN mrrv1.folder
ELSE
case mrrv2.username
when suser_sname() then mrrv2.folder
else mrrv1.folder
end
end,
cast( CASE isnull(mrrv2.id,-1) when -1
THEN dbo.udf_GetResourceName(mrrv1.id)
else case mrrv2.username when suser_sname()
then dbo.udf_GetResourceName(mrrv2.id)
else dbo.udf_GetResourceName(mrrv1.id)
end
END as varchar(64) ) ,
mrr.createdby, mrr.createdon,
case isnull(mrrv2.id,-1) when -1 then 0 else 1 end,
mrrv2.username, mrrv2.date, mrrv1.username, mrrv1.date,
mrrv1.state,
mrrv1.comment,
case isnull(mrr.[CurrentModuleResRefVersionID], -1)
when -1 then 1
else 0
end
from t_moduleresrefversion mrrv1
join t_moduleresref mrr on mrrv1.moduleid = mrr.moduleid and mrrv1.resrefid = mrr.resrefid
join t_resref rr1 on mrr.resrefid = rr1.id
left outer join t_moduleresrefversion mrrv2 on mrr.scratchmoduleresrefversionid = mrrv2.id
where mrrv1.id = @iVersionID
order by rr1.id
else
select rr1.id, 1, mrr.moduleid,
CASE isnull(mrrv2.id,-1)
WHEN -1 THEN mrrv1.ownermoduleid
ELSE
case mrrv2.username when suser_sname()
then mrrv2.ownermoduleid
else mrrv1.ownermoduleid
end
end,
CASE @a_bReturnVersionInfo
WHEN 0 THEN NULL
ELSE
CASE isnull(mrrv2.id,-1)
when -1 then mrrv1.[ID]
else
case mrrv2.username
WHEN suser_sname() then mrrv2.[ID]
else mrrv1.[ID]
end
end
END,
CASE @a_bReturnVersionInfo
WHEN 0 THEN NULL
ELSE
CASE isnull(mrrv2.id,-1)
when -1 then mrrv1.[RevisionID]
else
case mrrv2.username
WHEN suser_sname() then mrrv2.[RevisionID]
else mrrv1.[RevisionID]
end
end
END,
rr1.restype,
CASE isnull(mrrv2.id,-1)
when -1 then mrrv1.name
else
case mrrv2.username
WHEN suser_sname() then mrrv2.name
else mrrv1.name
end
end,
CASE isnull(mrrv2.id,-1) when -1
then mrrv1.folder
else
case mrrv2.username
WHEN suser_sname() then mrrv2.folder
else mrrv1.folder
end
end,
cast( CASE isnull(mrrv2.id,-1) when -1
THEN dbo.udf_GetResourceName(mrrv1.id)
else case mrrv2.username when suser_sname()
then dbo.udf_GetResourceName(mrrv2.id)
else dbo.udf_GetResourceName(mrrv1.id)
end
END as varchar(64) ) ,
mrr.createdby, mrr.createdon,
case isnull(mrrv2.id,-1) when -1 then 0 else 1 end,
mrrv2.username, mrrv2.date, mrrv1.username, mrrv1.date,
mrrv1.state,
mrrv1.comment,
case isnull(mrr.[CurrentModuleResRefVersionID], -1)
when -1 then 1
else 0
end
from dbo.udf_GetModuleHierarchy(@iModuleID, @a_bUseModuleTree) mt
join t_moduleresref mrr on mt.ModuleID = mrr.moduleid
join t_resref rr1 on mrr.resrefid = rr1.id
join t_moduleresrefversion mrrv1 on mrr.currentmoduleresrefversionid = mrrv1.id
left outer join t_moduleresrefversion mrrv2 on mrr.scratchmoduleresrefversionid = mrrv2.id
where mrr.resrefid = @iResRefID
order by rr1.id
SELECT @iError = @@ERROR
IF (@iError <> 0) GOTO ON_ERROR
SET NOCOUNT OFF
return 0
---------------------------------------------------------------------
ON_ERROR:
---------------------------------------------------------------------
SET NOCOUNT OFF
return @iError
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
GRANT EXECUTE ON [dbo].[bsp_GetResourceInfoByID] TO [bw_db_read]
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE PROCEDURE [dbo].[bsp_GetResourceInfoByName]
@a_iModuleID int,
@a_sResRefName varchar(128),
@a_sResType varchar(4),
@a_bUseModuleTree bit
AS
declare @iModuleID int
declare @sResRefName varchar(128)
declare @sResType varchar(4)
set @iModuleID = @a_iModuleID
set @sResRefName = @a_sResRefName
set @sResType = @a_sResType
DECLARE @iError INT
select rr1.id, 1, mrr.moduleid,
CASE isnull(mrrv2.id,-1) when -1
then mrrv1.ownermoduleid
else case mrrv2.username when suser_sname()
then mrrv2.ownermoduleid
else mrrv1.ownermoduleid
end
end,
null, null, rr1.restype,
CASE isnull(mrrv2.id,-1) when -1
then mrrv1.name
else case mrrv2.username when suser_sname()
then mrrv2.name
else mrrv1.name
end
end,
CASE isnull(mrrv2.id,-1) when -1
then mrrv1.folder
else case mrrv2.username when suser_sname()
then mrrv2.folder
else mrrv1.folder
end
end,
cast( CASE isnull(mrrv2.id,-1) when -1
THEN dbo.udf_GetResourceName(mrrv1.id)
else case mrrv2.username when suser_sname()
then dbo.udf_GetResourceName(mrrv2.id)
else dbo.udf_GetResourceName(mrrv1.id)
end
END as varchar(64) ) ,
mrr.createdby, mrr.createdon,
case isnull(mrrv2.id,-1) when -1 then 0 else 1 end,
mrrv2.username, mrrv2.date, mrrv1.username, mrrv1.date,
mrrv1.State,
mrrv1.comment,
case isnull(mrr.[CurrentModuleResRefVersionID], -1)
when -1 then 1
else 0
end
from dbo.udf_GetModuleHierarchy(@iModuleID, @a_bUseModuleTree) mt
join t_moduleresref mrr on mt.ModuleID = mrr.ModuleID
join t_resref rr1 on mrr.resrefid = rr1.id
and rr1.restype = @sResType
join t_moduleresrefversion mrrv on mrr.moduleid = mrrv.moduleid
and mrr.resrefid = mrrv.resrefid
and mrrv.name = @sResRefName
and mrrv.status in ('C', 'S')
join t_moduleresrefversion mrrv1 on mrr.currentmoduleresrefversionid = mrrv1.id
left outer join t_moduleresrefversion mrrv2 on mrr.scratchmoduleresrefversionid = mrrv2.id
order by rr1.id
SELECT @iError = @@ERROR
IF (@iError != 0) GOTO ON_ERROR
return 0
---------------------------------------------------------------------
ON_ERROR:
---------------------------------------------------------------------
return @@ERROR
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
GRANT EXECUTE ON [dbo].[bsp_GetResourceInfoByName] TO [bw_db_read]
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
------------------------------------------------------------------------
-- STORED PROCEDURE: bsp_GetResourceListByModuleAndType
------------------------------------------------------------------------
-- Owned By: Scott Meadows
-- Created On: 2005?
-- Description: This prodecure returns a list of ModuleResRefs
-- and various auditing information based on type. User Options
-- include loading deleted/current/scratch resources and by ResType.
-- NOTES:
-- * Procedure is built for use with CDBResRef common loading
-- functionality.
-- * When searching Scratch records, only current user's scratch
-- records are returned.
--
-- Returns:
-- 0 = success
-- non-zero = error code
-- Parameters:
-- @a_iModuleID: Module to look up resources in
-- @a_sResType: ResType of Resources to return, blank for all types
-- @a_bUseCurrent:
-- 1 = result set includes resources with a current version (ie: not deleted)
-- 0 = result set will not include anything with a current version
-- @a_bUseScratch:
-- 1 = result set includes records current user has checked out as scratch
-- 0 = result set will not have any scratch records, only Current and History (where applicable)
-- @a_bUseDeleted:
-- 1 = result set includes deleted resources (have no current version)
-- 0 = result set will not include deleted resources
-- * This will also force the return of the Version Info as well
-- @a_bUseModuleTree:
-- 1 = use module tree
-- 0 = does not use module tree (only load resources from indicated module)
-- @a_bReturnVersionInfo:
-- 1 = returns Version and Revision information
-- 0 = Version/Revision information is set to zero (unless trumped by use deleted)
-- @a_dtCheckedInBefore:
-- NULL or 0 = resources returned are the current (live) snapshot
-- Any date = resources returned are the most recent
-- versions checked in before this time
-- When a date is set:
-- - a_bUseCurrent returns resource/versions that were
-- current at this point in time (even if they are
-- presently deleted. Anything deleted prior to this
-- time is not shown.
-- - a_bUseScratch is ignored and should not be used
-- - a_bUseDeleted will include in the result set
-- all resources that have been deleted anytime
-- prior to the indicated datetime.
------------------------------------------------------------------------
CREATE PROCEDURE [dbo].[bsp_GetResourceListByModuleAndType]
@a_iModuleID int,
@a_sResType varchar(4),
@a_bUseCurrent bit,
@a_bUseScratch bit,
@a_bUseDeleted bit,
@a_bUseModuleTree bit,
@a_bReturnVersionInfo bit,
@a_dtCheckedInBefore datetime
AS
SET NOCOUNT ON
DECLARE @iError INT
DECLARE @iModuleID int
DECLARE @sResType varchar(4)
DECLARE @dtCheckedInBefore datetime
DECLARE @bReturnVersionInfo bit
DECLARE @bUseHistoryRecords bit
------------------------------------------------------------------------
-- If the user is not passing in a time, they want the current data.
-- Set it to a point far in the future.
--
-- Also, force @a_dtCheckedInBefore to NULL, just so that we don't
-- have to compare against NULL and 0 for the rest of this BSP.
------------------------------------------------------------------------
IF ISNULL(@a_dtCheckedInBefore, 0) = 0
BEGIN
SET @a_dtCheckedInBefore = NULL
SET @dtCheckedInBefore = '9999-12-31'
END
ELSE
BEGIN
SET @dtCheckedInBefore = @a_dtCheckedInBefore
END
SELECT @iError = @@ERROR
IF (@iError != 0) GOTO ON_ERROR
------------------------------------------------------------------------
-- Determine if we can return data based on 'H'istory records
-- as opposed to just 'C'urrent records.
------------------------------------------------------------------------
IF ( (@a_bUseDeleted = 1) OR (@a_dtCheckedInBefore IS NOT NULL) )
BEGIN
SET @bUseHistoryRecords = 1
END
ELSE
BEGIN
SET @bUseHistoryRecords = 0
END
------------------------------------------------------------------------
-- If the user is using deleted records then we have to return the
-- version info as well
------------------------------------------------------------------------
IF (@a_bUseDeleted = 1)
SET @bReturnVersionInfo = 1
ELSE
SET @bReturnVersionInfo = @a_bReturnVersionInfo
SELECT @iError = @@ERROR
IF (@iError != 0) GOTO ON_ERROR
set @iModuleID = @a_iModuleID
set @sResType = @a_sResType
IF (@a_dtCheckedInBefore IS NULL)
BEGIN
SELECT rr1.ID , 1 , mrr.ModuleID ,
CASE @a_bUseScratch when 1
THEN
CASE isnull(mrrv2.id,-1) WHEN -1
THEN mrrv1.ownermoduleid
ELSE case mrrv2.username when suser_sname()
then mrrv2.ownermoduleid
else mrrv1.ownermoduleid
end
end
else mrrv1.ownermoduleid
end,
CASE @bReturnVersionInfo WHEN 1
THEN mrrv1.[ID]
ELSE 0
END, -- Version (if requested)
CASE @bReturnVersionInfo WHEN 1
THEN mrrv1.[RevisionID]
ELSE 0
END, -- RevisionID (if requested)
rr1.[ResType],
CASE @a_bUseScratch when 1
THEN
CASE isnull(mrrv2.id,-1) WHEN -1
THEN mrrv1.name
ELSE case mrrv2.username when suser_sname()
then mrrv2.name
else mrrv1.name
end
end
else mrrv1.name
end,
CASE @a_bUseScratch when 1
THEN
CASE isnull(mrrv2.id,-1) when -1
THEN mrrv1.folder
else case mrrv2.username when suser_sname()
then mrrv2.folder
else mrrv1.folder
end
end
else mrrv1.folder
end,
cast(CASE @a_bUseScratch when 1
THEN
CASE isnull(mrrv2.id,-1) when -1
THEN dbo.udf_GetResourceName(mrrv1.id)
else case mrrv2.username when suser_sname()
then dbo.udf_GetResourceName(mrrv2.id)
else dbo.udf_GetResourceName(mrrv1.id)
end
end
else dbo.udf_GetResourceName(mrrv1.id)
END as varchar(64) ) ,
CASE @a_bUseDeleted when 1
THEN mrr.lastmodifiedby
ELSE mrr.createdby
END,
CASE @a_bUseDeleted when 1
THEN mrr.lastmodifiedon
ELSE mrr.createdon
END,
CASE isnull(mrrv2.id,-1) when -1 then 0 else 1 end,
mrrv2.[Username], mrrv2.[Date],
mrrv1.[Username], mrrv1.[Date],
mrrv1.[State],
mrrv1.[Comment],
CASE isnull (mrr.[CurrentModuleResRefVersionID], -1)
WHEN -1 THEN 1
ELSE 0
END
FROM t_resref rr1
join t_ModuleResRef mrr
on rr1.restype = case @sResType when '' then rr1.restype else @sResType end
and mrr.resrefid = rr1.id
LEFT OUTER JOIN t_moduleresrefversion mrrv2
on mrr.scratchmoduleresrefversionid = mrrv2.id -- This is only here to report if/who has resource checked out
join t_moduleresrefversion mrrv1 -- this one should be current when applicable
on mrrv1.[ModuleID] = mrr.[ModuleID]
AND mrrv1.[ResRefID] = mrr.[ResRefID]
and (mrrv1.[Status] = 'C' OR
( (@bUseHistoryRecords = 1) AND mrrv1.[Status] = 'H') ) -- scratch records do not count here
join dbo.udf_GetModuleHierarchy(@iModuleID, @a_bUseModuleTree) mt
on mt.[ModuleID] = mrrv1.[OwnerModuleID]
WHERE
(
( (@a_dtCheckedInBefore IS NULL) AND
(
(@a_bUseCurrent = 1 and mrr.CurrentModuleResRefVersionID IS NOT NULL)
OR
(@a_bUseDeleted = 1 and mrr.CurrentModuleResRefVersionID IS NULL)
)
)
OR
(
(@a_dtCheckedInBefore IS NOT NULL)
AND
(
( (@a_bUseCurrent = 1) AND (@a_bUseDeleted = 0) AND ( (mrr.[CurrentModuleResRefVersionID] IS NOT NULL) OR (mrr.[LastModifiedOn] >= @a_dtCheckedInBefore) ) )
OR
( (@a_bUseCurrent = 0) AND (@a_bUseDeleted = 1) AND (mrr.[CurrentModuleResRefVersionID] IS NULL) )
OR
( (@a_bUseCurrent = 1) AND (@a_bUseDeleted = 1) )
)
)
)
option (force order)
END
ELSE
BEGIN
SELECT rr1.ID , 1 , mrr.ModuleID ,
CASE @a_bUseScratch when 1
THEN
CASE isnull(mrrv2.id,-1) WHEN -1
THEN mrrv1.ownermoduleid
ELSE case mrrv2.username when suser_sname()
then mrrv2.ownermoduleid
else mrrv1.ownermoduleid
end
end
else mrrv1.ownermoduleid
end,
CASE @bReturnVersionInfo WHEN 1
THEN mrrv1.[ID]
ELSE 0
END, -- Version (if requested)
CASE @bReturnVersionInfo WHEN 1
THEN mrrv1.[RevisionID]
ELSE 0
END, -- RevisionID (if requested)
rr1.[ResType],
CASE @a_bUseScratch when 1
THEN
CASE isnull(mrrv2.id,-1) WHEN -1
THEN mrrv1.name
ELSE case mrrv2.username when suser_sname()
then mrrv2.name
else mrrv1.name
end
end
else mrrv1.name
end,
CASE @a_bUseScratch when 1
THEN
CASE isnull(mrrv2.id,-1) when -1
THEN mrrv1.folder
else case mrrv2.username when suser_sname()
then mrrv2.folder
else mrrv1.folder
end
end
else mrrv1.folder
end,
cast(CASE @a_bUseScratch when 1
THEN
CASE isnull(mrrv2.id,-1) when -1
THEN dbo.udf_GetResourceName(mrrv1.id)
else case mrrv2.username when suser_sname()
then dbo.udf_GetResourceName(mrrv2.id)
else dbo.udf_GetResourceName(mrrv1.id)
end
end
else dbo.udf_GetResourceName(mrrv1.id)
END as varchar(64) ) ,
CASE @a_bUseDeleted when 1
THEN mrr.lastmodifiedby
ELSE mrr.createdby
END,
CASE @a_bUseDeleted when 1
THEN mrr.lastmodifiedon
ELSE mrr.createdon
END,
CASE isnull(mrrv2.id,-1) when -1 then 0 else 1 end,
mrrv2.[Username], mrrv2.[Date],
mrrv1.[Username], mrrv1.[Date],
mrrv1.[State],
mrrv1.[Comment],
CASE isnull (mrr.[CurrentModuleResRefVersionID], -1)
WHEN -1 THEN 1
ELSE 0
END
FROM t_resref rr1
join t_ModuleResRef mrr
ON mrr.resrefid = rr1.id
AND rr1.restype = case @sResType when '' then rr1.restype else @sResType end
LEFT OUTER JOIN t_moduleresrefversion mrrv2
on mrr.scratchmoduleresrefversionid = mrrv2.id -- This is only here to report if/who has resource checked out
join t_moduleresrefversion mrrv1 -- this one should be current when applicable
on mrrv1.[ModuleID] = mrr.[ModuleID]
AND mrrv1.[ResRefID] = mrr.[ResRefID]
join dbo.udf_GetModuleHierarchy(@iModuleID, @a_bUseModuleTree) mt
ON mt.[ModuleID] = mrrv1.[OwnerModuleID]
JOIN
(SELECT [ModuleID], [ResRefID], MAX([Date]) AS [Date]
FROM t_ModuleResRefVersion
WHERE [Date] < @dtCheckedInBefore
AND ([Status] = 'C' OR
( (@bUseHistoryRecords = 1) AND [Status] = 'H') ) -- scratch records do not count here
GROUP BY moduleid, resrefid) mrrvDate
ON mrrv1.[ModuleID] = mrrvDate.[ModuleID]
AND mrrv1.[ResRefID] = mrrvDate.[ResRefID]
AND mrrv1.[Date] = mrrvDate.[Date]
WHERE
(
( (@a_dtCheckedInBefore IS NULL) AND
(
(@a_bUseCurrent = 1 and mrr.CurrentModuleResRefVersionID IS NOT NULL)
OR
(@a_bUseDeleted = 1 and mrr.CurrentModuleResRefVersionID IS NULL)
)
)
OR
(
(@a_dtCheckedInBefore IS NOT NULL)
AND
(
( (@a_bUseCurrent = 1) AND (@a_bUseDeleted = 0) AND ( (mrr.[CurrentModuleResRefVersionID] IS NOT NULL) OR (mrr.[LastModifiedOn] >= @a_dtCheckedInBefore) ) )
OR
( (@a_bUseCurrent = 0) AND (@a_bUseDeleted = 1) AND (mrr.[CurrentModuleResRefVersionID] IS NULL) )
OR
( (@a_bUseCurrent = 1) AND (@a_bUseDeleted = 1) )
)
)
)
option (force order)
END
SELECT @iError = @@ERROR
IF (@iError != 0) GOTO ON_ERROR
return 0
---------------------------------------------------------------------
ON_ERROR:
---------------------------------------------------------------------
SET NOCOUNT OFF
return @iError
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
GRANT EXECUTE ON [dbo].[bsp_GetResourceListByModuleAndType] TO [bw_db_read]
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE PROCEDURE [dbo].[bsp_GetResourceReferenceList]
@a_iModuleID int,
@a_iResRefID int,
@a_iVersionID int,
@a_bUseModuleTree bit,
@a_bUseCurrent bit,
@a_bUseScratch bit,
@a_bGetDeleted bit,
@a_bGetReferences bit
AS
SET NOCOUNT ON
declare @iModuleID int
declare @iResRefID int
declare @iVersionID int
set @iModuleID = @a_iModuleID
set @iResRefID = @a_iResRefID
set @iVersionID = @a_iVersionID
DECLARE @tStatusTable TABLE (Status varchar(1))
DECLARE @tResRefTable TABLE (ResRefID INT)
DECLARE @tResourceTable TABLE (ResRefID INT, Level INT, ModuleID INT, OwnerModuleID INT,
VersionID INT, RevisionID INT, ResType VARCHAR(4),
ResRefName VARCHAR(32), Folder VARCHAR(128), ObjectName VARCHAR(64),
CreatedBy VARCHAR(32), CreatedOn DATETIME,
IsCheckedOut BIT, CheckedOutBy VARCHAR(32), CheckedOutOn DATETIME,
LastCheckInBy VARCHAR(32), LastCheckInOn DATETIME, State INT,
Comment TEXT, IsDeleted BIT)
------------------------------------------------------------------------
-- Get the Module list to use
------------------------------------------------------------------------
if @a_bUseCurrent = 1
BEGIN
INSERT INTO @tStatusTable(Status) VALUES ('C')
END
if @a_bUseScratch = 1
BEGIN
INSERT INTO @tStatusTable(Status) VALUES ('S')
END
if @a_bGetReferences = 1
BEGIN
-- These are the resources that I am referencing
INSERT INTO @tResRefTable
SELECT distinct vrr.ResRefID
FROM (
SELECT DISTINCT rr1.SrcResRefID as ResRefID
, mrrv.[ResRefID] as ReferencedByResRefID
, mrrv.[ID] as ReferencedByVersionID
, mrrv.[Status] as ReferencedByStatus
, rr1.notes as Note
-- Area
FROM ( SELECT t1.[ScriptResRefID] as SrcResRefID, t1.[ModuleResRefVersionID], 'Area Script' as notes FROM t_Area t1
UNION ALL SELECT t1.[AreaListResRefID], t1.[ModuleResRefVersionID], 'Area List' FROM t_Area t1
UNION ALL SELECT t1.[ObjectResRefID], t1.[ModuleResRefVersionID], 'Area Object' FROM t_AreaObject t1
UNION ALL SELECT t1.[ScriptResRefID], t1.[ModuleResRefVersionID], 'Area Music Volume Script' FROM t_AreaMusicVolume t1
-- Area Map
UNION ALL SELECT t1.[ParentMapResRefID], t1.[ModuleResRefVersionID], 'Area Map Parent' FROM t_Map t1
-- Associated Resource
UNION ALL SELECT t1.[ResRefID], t1.[ModuleResRefVersionID], 'Associated Resource' FROM t_AssociatedResource t1
-- Character
UNION ALL SELECT t1.[RoleResRefID], t1.[ModuleResRefVersionID], 'Character Role' FROM t_Character t1
UNION ALL SELECT t1.[SoundsetResRefID], t1.[ModuleResRefVersionID], 'Sound Set' FROM t_Character t1
-- Conversation
UNION ALL SELECT t1.[EndConversationPlotResRefID], t1.[ModuleResRefVersionID], 'End Conversation Plot' FROM t_Conversation t1
UNION ALL SELECT t1.[EndConversationScriptResRefID], t1.[ModuleResRefVersionID], 'End Conversation Script' FROM t_Conversation t1
UNION ALL SELECT t1.[StageResRefID], t1.[ModuleResRefVersionID], 'Conversation Root Stage' FROM t_Conversation t1
UNION ALL SELECT t1.[PreviewAreaResRefID], t1.[ModuleResRefVersionID], 'Conversation Root Preview Area' FROM t_Conversation t1
UNION ALL SELECT t1.[ActionPlotResRefID], t1.[ModuleResRefVersionID], 'Conversation Line Action Plot' FROM t_ConversationLine t1
UNION ALL SELECT t1.[ActionScriptResRefID], t1.[ModuleResRefVersionID], 'Conversation Line Action Script' FROM t_ConversationLine t1
UNION ALL SELECT t1.[ConditionPlotResRefID], t1.[ModuleResRefVersionID], 'Conversation Line Condition Plot' FROM t_ConversationLine t1
UNION ALL SELECT t1.[ConditionScriptResRefID], t1.[ModuleResRefVersionID], 'Conversation Line Condition Script' FROM t_ConversationLine t1
UNION ALL SELECT t1.[StageResRefID], t1.[ModuleResRefVersionID], 'Conversation Line Stage' FROM t_ConversationLine t1
UNION ALL SELECT t1.[CameraFunctionalShotResRefID], t1.[ModuleResRefVersionID], 'Conversation Line Camera Functional Shot' FROM t_ConversationLine t1
UNION ALL SELECT t1.[CustomCutsceneResRefID], t1.[ModuleResRefVersionID], 'Conversation Line Custom Cutscene' FROM t_ConversationLine t1
UNION ALL SELECT t1.[FunctionalShotResRefID], t1.[ModuleResRefVersionID], 'Conversation Cinematics Functional Shot' FROM t_ConversationCinematics t1
UNION ALL SELECT t1.[PreviewAreaResRefID], t1.[ModuleResRefVersionID], 'Conversation Line Preview Area' FROM t_ConversationLine t1
UNION ALL SELECT t1.[ValueResRefID], t1.[ModuleResRefVersionID], 'Conversation Tag Map' FROM t_ConversationTagMap t1
-- Creature
UNION ALL SELECT t1.[ConversationResRefID], t1.[ModuleResRefVersionID], 'Creature Conversation' FROM t_Creature t1
UNION ALL SELECT t1.[ScriptResRefID], t1.[ModuleResRefVersionID], 'Creature Script' FROM t_Creature t1
UNION ALL SELECT t1.[CharacterResRefID], t1.[ModuleResRefVersionID], 'Creature Character' FROM t_Creature t1
-- Cutscene
UNION ALL SELECT t1.[EndScriptResRefID], t1.[ModuleResRefVersionID], 'Cutscene End Script' FROM t_Cutscene t1
UNION ALL SELECT t1.[StageResRefID], t1.[ModuleResRefVersionID], 'Cutscene Stage' FROM t_Cutscene t1
UNION ALL SELECT t1.[ResRefID], t1.[ModuleResRefVersionID], 'Cutscene Object' FROM t_CutsceneObject t1
UNION ALL SELECT t1.[AreaResRefID], t1.[ModuleResRefVersionID], 'Cutscene Area' FROM t_Cutscene t1
UNION ALL SELECT t1.[ResRefID1], t1.[ModuleResRefVersionID], 'Cutscene Speak Line Conversation' FROM t_CutsceneAction t1
-- Inventory
UNION ALL SELECT t1.[ItemResRefID], t1.[ModuleResRefVersionID], 'Inventory Item' FROM t_Inventory t1
-- Item
UNION ALL SELECT t1.[ScriptResRefID], t1.[ModuleResRefVersionID], 'Item Script' FROM t_Item t1
-- Merchant
UNION ALL SELECT t1.[ScriptResRefID], t1.[ModuleResRefVersionID], 'Merchant Script' FROM t_Merchant t1
-- Placeable
UNION ALL SELECT t1.[ScriptResRefID], t1.[ModuleResRefVersionID], 'Placeable Script' FROM t_Placeable t1
UNION ALL SELECT t1.[ConversationResRefID], t1.[ModuleResRefVersionID], 'Placeable Conversation' FROM t_Placeable t1
UNION ALL SELECT t1.[CharacterResRefID], t1.[ModuleResRefVersionID], 'Placeable Character' FROM t_Placeable t1
-- Plot
UNION ALL SELECT t1.[ScriptResRefID], t1.[ModuleResRefVersionID], 'Plot Script' FROM t_Plot t1
UNION ALL SELECT t1.[ParentPlotResRefID], t1.[ModuleResRefVersionID], 'Parent plot' FROM t_Plot t1
-- Trigger
UNION ALL SELECT t1.[ScriptResRefID], t1.[ModuleResRefVersionID], 'Trigger Script' FROM t_Trigger t1
-- Script
UNION ALL SELECT t1.[ReferencedResRefID], t1.[ModuleResRefVersionID], 'Script Reference' FROM t_Script_Reference t1
-- Stage
UNION ALL SELECT t1.[AreaResRefID], t1.[ModuleResRefVersionID], 'Stage Area' FROM t_Stage t1
UNION ALL SELECT t1.[CreatureResRefID], t1.[ModuleResRefVersionID], 'Stage Creature' FROM t_StageObject t1
) rr1
JOIN t_ModuleResRefVersion mrrv on rr1.ModuleResRefVersionID = mrrv.[ID]
) vrr
join @tStatusTable t1 on t1.Status = vrr.ReferencedByStatus
WHERE vrr.ReferencedByResRefID = @iResRefID
AND vrr.ResRefID is not null
END
else
BEGIN
-- These are the resources that reference me
INSERT INTO @tResRefTable
SELECT distinct vrr.ReferencedByResRefID
FROM (
-- Area
SELECT t1.[ScriptResRefID] as ResRefID
, mrrv.[ResRefID] as ReferencedByResRefID
, mrrv.[ID] as ReferencedByVersionID
, mrrv.[Status] as ReferencedByStatus
, 'Area Script' as Note
FROM t_Area t1
join t_ModuleResRefVersion mrrv on t1.[ModuleResRefVersionID] = mrrv.[ID]
UNION ALL
SELECT t1.[AreaListResRefID]
, mrrv.[ResRefID]
, mrrv.[ID]
, mrrv.[Status]
, 'Area List'
FROM t_Area t1
join t_ModuleResRefVersion mrrv on t1.[ModuleResRefVersionID] = mrrv.[ID]
UNION ALL
SELECT t1.[ObjectResRefID]
, mrrv.[ResRefID]
, mrrv.[ID]
, mrrv.[Status]
, 'Area Object'
FROM t_AreaObject t1
join t_ModuleResRefVersion mrrv on t1.[ModuleResRefVersionID] = mrrv.[ID]
UNION ALL
SELECT t1.[ScriptResRefID]
, mrrv.[ResRefID]
, mrrv.[ID]
, mrrv.[Status]
, 'Area Music Volume Script'
FROM t_AreaMusicVolume t1
join t_ModuleResRefVersion mrrv on t1.[ModuleResRefVersionID] = mrrv.[ID]
UNION ALL
-- Area Map
SELECT t1.[ParentMapResRefID]
, mrrv.[ResRefID]
, mrrv.[ID]
, mrrv.[Status]
, 'Area Map Parent'
FROM t_Map t1
join t_ModuleResRefVersion mrrv on t1.[ModuleResRefVersionID] = mrrv.[ID]
UNION ALL
-- Associated Resource
SELECT t1.[ResRefID]
, mrrv.[ResRefID]
, mrrv.[ID]
, mrrv.[Status]
, 'Associated Resource'
FROM t_AssociatedResource t1
join t_ModuleResRefVersion mrrv on t1.[ModuleResRefVersionID] = mrrv.[ID]
UNION ALL
-- Character
SELECT t1.[RoleResRefID]
, mrrv.[ResRefID]
, mrrv.[ID]
, mrrv.[Status]
, 'Character Role'
FROM t_Character t1
join t_ModuleResRefVersion mrrv on t1.[ModuleResRefVersionID] = mrrv.[ID]
UNION ALL
SELECT t1.[SoundsetResRefID]
, mrrv.[ResRefID]
, mrrv.[ID]
, mrrv.[Status]
, 'Sound Set'
FROM t_Character t1
join t_ModuleResRefVersion mrrv on t1.[ModuleResRefVersionID] = mrrv.[ID]
UNION ALL
-- Conversation
SELECT t1.[EndConversationPlotResRefID]
, mrrv.[ResRefID]
, mrrv.[ID]
, mrrv.[Status]
, 'End Conversation Plot'
FROM t_Conversation t1
join t_ModuleResRefVersion mrrv on t1.[ModuleResRefVersionID] = mrrv.[ID]
UNION ALL
SELECT t1.[EndConversationScriptResRefID]
, mrrv.[ResRefID]
, mrrv.[ID]
, mrrv.[Status]
, 'End Conversation Script'
FROM t_Conversation t1
join t_ModuleResRefVersion mrrv on t1.[ModuleResRefVersionID] = mrrv.[ID]
UNION ALL
SELECT t1.[StageResRefID]
, mrrv.[ResRefID]
, mrrv.[ID]
, mrrv.[Status]
, 'Conversation Root Stage'
FROM t_Conversation t1
join t_ModuleResRefVersion mrrv on t1.[ModuleResRefVersionID] = mrrv.[ID]
UNION ALL
SELECT t1.[PreviewAreaResRefID]
, mrrv.[ResRefID]
, mrrv.[ID]
, mrrv.[Status]
, 'Conversation Root Preview Area'
FROM t_Conversation t1
join t_ModuleResRefVersion mrrv on t1.[ModuleResRefVersionID] = mrrv.[ID]
UNION ALL
SELECT t1.[ActionPlotResRefID]
, mrrv.[ResRefID]
, mrrv.[ID]
, mrrv.[Status]
, 'Conversation Line Action Plot'
FROM t_ConversationLine t1
join t_ModuleResRefVersion mrrv on t1.[ModuleResRefVersionID] = mrrv.[ID]
UNION ALL
SELECT t1.[ActionScriptResRefID]
, mrrv.[ResRefID]
, mrrv.[ID]
, mrrv.[Status]
, 'Conversation Line Action Script'
FROM t_ConversationLine t1
join t_ModuleResRefVersion mrrv on t1.[ModuleResRefVersionID] = mrrv.[ID]
UNION ALL
SELECT t1.[ConditionPlotResRefID]
, mrrv.[ResRefID]
, mrrv.[ID]
, mrrv.[Status]
, 'Conversation Line Condition Plot'
FROM t_ConversationLine t1
join t_ModuleResRefVersion mrrv on t1.[ModuleResRefVersionID] = mrrv.[ID]
UNION ALL
SELECT t1.[ConditionScriptResRefID]
, mrrv.[ResRefID]
, mrrv.[ID]
, mrrv.[Status]
, 'Conversation Line Condition Script'
FROM t_ConversationLine t1
join t_ModuleResRefVersion mrrv on t1.[ModuleResRefVersionID] = mrrv.[ID]
UNION ALL
SELECT t1.[StageResRefID]
, mrrv.[ResRefID]
, mrrv.[ID]
, mrrv.[Status]
, 'Conversation Line Stage'
FROM t_ConversationLine t1
join t_ModuleResRefVersion mrrv on t1.[ModuleResRefVersionID] = mrrv.[ID]
UNION ALL
SELECT t1.[CameraFunctionalShotResRefID]
, mrrv.[ResRefID]
, mrrv.[ID]
, mrrv.[Status]
, 'Conversation Line Camera Functional Shot'
FROM t_ConversationLine t1
join t_ModuleResRefVersion mrrv on t1.[ModuleResRefVersionID] = mrrv.[ID]
UNION ALL
SELECT t1.[CustomCutsceneResRefID]
, mrrv.[ResRefID]
, mrrv.[ID]
, mrrv.[Status]
, 'Conversation Line Custom Cutscene'
FROM t_ConversationLine t1
join t_ModuleResRefVersion mrrv on t1.[ModuleResRefVersionID] = mrrv.[ID]
UNION ALL
SELECT t1.[FunctionalShotResRefID]
, mrrv.[ResRefID]
, mrrv.[ID]
, mrrv.[Status]
, 'Conversation Cinematics Functional Shot'
FROM t_ConversationCinematics t1
join t_ModuleResRefVersion mrrv on t1.[ModuleResRefVersionID] = mrrv.[ID]
UNION ALL
SELECT t1.[PreviewAreaResRefID]
, mrrv.[ResRefID]
, mrrv.[ID]
, mrrv.[Status]
, 'Conversation Line Preview Area'
FROM t_ConversationLine t1
join t_ModuleResRefVersion mrrv on t1.[ModuleResRefVersionID] = mrrv.[ID]
UNION ALL
SELECT t1.[ValueResRefID]
, mrrv.[ResRefID]
, mrrv.[ID]
, mrrv.[Status]
, 'Conversation Tag Map'
FROM t_ConversationTagMap t1
join t_ModuleResRefVersion mrrv on t1.[ModuleResRefVersionID] = mrrv.[ID]
UNION ALL
-- Creature
SELECT t1.[ConversationResRefID]
, mrrv.[ResRefID]
, mrrv.[ID]
, mrrv.[Status]
, 'Creature Conversation'
FROM t_Creature t1
join t_ModuleResRefVersion mrrv on t1.[ModuleResRefVersionID] = mrrv.[ID]
UNION ALL
SELECT t1.[ScriptResRefID]
, mrrv.[ResRefID]
, mrrv.[ID]
, mrrv.[Status]
, 'Creature Script'
FROM t_Creature t1
join t_ModuleResRefVersion mrrv on t1.[ModuleResRefVersionID] = mrrv.[ID]
UNION ALL
SELECT t1.[CharacterResRefID]
, mrrv.[ResRefID]
, mrrv.[ID]
, mrrv.[Status]
, 'Creature Character'
FROM t_Creature t1
join t_ModuleResRefVersion mrrv on t1.[ModuleResRefVersionID] = mrrv.[ID]
UNION ALL
-- Cutscene
SELECT t1.[EndScriptResRefID]
, mrrv.[ResRefID]
, mrrv.[ID]
, mrrv.[Status]
, 'Cutscene End Script'
FROM t_Cutscene t1
join t_ModuleResRefVersion mrrv on t1.[ModuleResRefVersionID] = mrrv.[ID]
UNION ALL
SELECT t1.[StageResRefID]
, mrrv.[ResRefID]
, mrrv.[ID]
, mrrv.[Status]
, 'Cutscene Stage'
FROM t_Cutscene t1
join t_ModuleResRefVersion mrrv on t1.[ModuleResRefVersionID] = mrrv.[ID]
UNION ALL
SELECT t1.[ResRefID]
, mrrv.[ResRefID]
, mrrv.[ID]
, mrrv.[Status]
, 'Cutscene Object'
FROM t_CutsceneObject t1
join t_ModuleResRefVersion mrrv on t1.[ModuleResRefVersionID] = mrrv.[ID]
UNION ALL
SELECT t1.[AreaResRefID]
, mrrv.[ResRefID]
, mrrv.[ID]
, mrrv.[Status]
, 'Cutscene Area'
FROM t_Cutscene t1
join t_ModuleResRefVersion mrrv on t1.[ModuleResRefVersionID] = mrrv.[ID]
UNION ALL
SELECT t1.[ResRefID1]
, mrrv.[ResRefID]
, mrrv.[ID]
, mrrv.[Status]
, 'Cutscene Speak Line Conversation'
FROM t_CutsceneAction t1
join t_ModuleResRefVersion mrrv on t1.[ModuleResRefVersionID] = mrrv.[ID]
UNION ALL
-- Inventory
SELECT t1.[ItemResRefID]
, mrrv.[ResRefID]
, mrrv.[ID]
, mrrv.[Status]
, 'Inventory Item'
FROM t_Inventory t1
join t_ModuleResRefVersion mrrv on t1.[ModuleResRefVersionID] = mrrv.[ID]
UNION ALL
-- Item
SELECT t1.[ScriptResRefID]
, mrrv.[ResRefID]
, mrrv.[ID]
, mrrv.[Status]
, 'Item Script'
FROM t_Item t1
join t_ModuleResRefVersion mrrv on t1.[ModuleResRefVersionID] = mrrv.[ID]
UNION ALL
-- Merchant
SELECT t1.[ScriptResRefID]
, mrrv.[ResRefID]
, mrrv.[ID]
, mrrv.[Status]
, 'Merchant Script'
FROM t_Merchant t1
join t_ModuleResRefVersion mrrv on t1.[ModuleResRefVersionID] = mrrv.[ID]
UNION ALL
-- Placeable
SELECT t1.[ScriptResRefID]
, mrrv.[ResRefID]
, mrrv.[ID]
, mrrv.[Status]
, 'Placeable Script'
FROM t_Placeable t1
join t_ModuleResRefVersion mrrv on t1.[ModuleResRefVersionID] = mrrv.[ID]
UNION ALL
SELECT t1.[ConversationResRefID]
, mrrv.[ResRefID]
, mrrv.[ID]
, mrrv.[Status]
, 'Placeable Conversation'
FROM t_Placeable t1
join t_ModuleResRefVersion mrrv on t1.[ModuleResRefVersionID] = mrrv.[ID]
UNION ALL
SELECT t1.[CharacterResRefID]
, mrrv.[ResRefID]
, mrrv.[ID]
, mrrv.[Status]
, 'Placeable Character'
FROM t_Placeable t1
join t_ModuleResRefVersion mrrv on t1.[ModuleResRefVersionID] = mrrv.[ID]
UNION ALL
-- Plot
SELECT t1.[ScriptResRefID]
, mrrv.[ResRefID]
, mrrv.[ID]
, mrrv.[Status]
, 'Plot Script'
FROM t_Plot t1
join t_ModuleResRefVersion mrrv on t1.[ModuleResRefVersionID] = mrrv.[ID]
UNION ALL
SELECT t1.[ParentPlotResRefID]
, mrrv.[ResRefID]
, mrrv.[ID]
, mrrv.[Status]
, 'Parent plot'
FROM t_Plot t1
join t_ModuleResRefVersion mrrv on t1.[ModuleResRefVersionID] = mrrv.[ID]
UNION ALL
-- Trigger
SELECT t1.[ScriptResRefID]
, mrrv.[ResRefID]
, mrrv.[ID]
, mrrv.[Status]
, 'Trigger Script'
FROM t_Trigger t1
join t_ModuleResRefVersion mrrv on t1.[ModuleResRefVersionID] = mrrv.[ID]
UNION ALL
-- Script
SELECT t1.[ReferencedResRefID]
, mrrv.[ResRefID]
, mrrv.[ID]
, mrrv.[Status]
, 'Script Reference'
FROM t_Script_Reference t1
join t_ModuleResRefVersion mrrv on t1.[ModuleResRefVersionID] = mrrv.[ID]
UNION ALL
-- Stage
SELECT t1.[AreaResRefID]
, mrrv.[ResRefID]
, mrrv.[ID]
, mrrv.[Status]
, 'Stage Area'
FROM t_Stage t1
join t_ModuleResRefVersion mrrv on t1.[ModuleResRefVersionID] = mrrv.[ID]
UNION ALL
SELECT t1.[CreatureResRefID]
, mrrv.[ResRefID]
, mrrv.[ID]
, mrrv.[Status]
, 'Stage Creature'
FROM t_StageObject t1
join t_ModuleResRefVersion mrrv on t1.[ModuleResRefVersionID] = mrrv.[ID]
) vrr
join @tStatusTable t1 on t1.Status = vrr.ReferencedByStatus
WHERE vrr.ResRefID = @iResRefID
AND vrr.ResRefID is not null
option (concat union)
END
------------------------------------------------------------------------
-- It is very important to select at least one column from the v_ResourceReference
-- view and/or subquery that it is in.
-- The optimizer does not perform well if that view is not referenced in the final select
------------------------------------------------------------------------
IF @a_bUseCurrent = 1 OR @a_bUseScratch = 1
BEGIN
INSERT INTO @tResourceTable
SELECT vrr1.resrefid, 1, mrr.moduleid,
CASE isnull(mrrv2.id,-1) when -1
then mrrv1.ownermoduleid
else case mrrv2.username when suser_sname()
then mrrv2.ownermoduleid
else mrrv1.ownermoduleid
end
end,
0, 0, rr1.restype,
CASE isnull(mrrv2.id,-1) when -1
then mrrv1.name
else case mrrv2.username when suser_sname()
then mrrv2.name
else mrrv1.name
end
end,
CASE isnull(mrrv2.id,-1) when -1
then mrrv1.folder
else case mrrv2.username when suser_sname()
then mrrv2.folder
else mrrv1.folder
end
end,
cast( CASE isnull(mrrv2.id,-1) when -1
THEN dbo.udf_GetResourceName(mrrv1.id)
else case mrrv2.username when suser_sname()
then dbo.udf_GetResourceName(mrrv2.id)
else dbo.udf_GetResourceName(mrrv1.id)
end
END as varchar(64) ) ,
mrr.createdby, mrr.createdon,
case isnull(mrrv2.id,-1) when -1 then 0 else 1 end,
mrrv2.username, mrrv2.date, mrrv1.username, mrrv1.date, mrrv1.state,
mrrv1.comment,
case isnull(mrr.CurrentModuleResRefVersionID, -1)
when -1 then 1
else 0
end
FROM dbo.udf_GetModuleHierarchy(@iModuleID, @a_bUseModuleTree) mt
JOIN t_moduleresref mrr ON mt.ModuleID = mrr.moduleid
JOIN t_resref rr1 on mrr.resrefid = rr1.id
JOIN t_moduleresrefversion mrrv1 on mrr.currentmoduleresrefversionid = mrrv1.id
LEFT OUTER JOIN t_moduleresrefversion mrrv2 on mrr.scratchmoduleresrefversionid = mrrv2.id
JOIN @tResRefTable vrr1 ON mrr.resrefid = vrr1.resrefid
END
IF @a_bGetDeleted = 1
BEGIN
INSERT INTO @tResourceTable
select drr.resrefid, null, mrr.moduleid, mrrv.ownermoduleid, mrrv.id, mrrv.RevisionID,
rr1.restype, mrrv.name, mrrv.folder, cast( dbo.udf_GetResourceName(mrrv.id) as varchar(64) ) ,
mrr.lastmodifiedby, mrr.lastmodifiedon,
0, null, null, null, null, mrrv.state,
mrrv.comment,
case isnull(mrr.CurrentModuleResRefVersionID, -1)
when -1 then 1
else 0
end
from dbo.udf_GetModuleHierarchy(@iModuleID, @a_bUseModuleTree) mt
JOIN t_moduleresref mrr ON mt.ModuleID = mrr.moduleid
join t_ResRef rr1 on mrr.resrefid = rr1.id
join t_ModuleResRefVersion mrrv on mrrv.moduleid = mrr.moduleid
and mrrv.resrefid = mrr.resrefid
join (select distinct vrr.ResRefID
from (
SELECT DISTINCT rr1.SrcResRefID as ResRefID
, mrrv.[ResRefID] as ReferencedByResRefID
, mrrv.[ID] as ReferencedByVersionID
, mrrv.[Status] as ReferencedByStatus
, rr1.notes as Note
-- Area
FROM ( SELECT t1.[ScriptResRefID] as SrcResRefID, t1.[ModuleResRefVersionID], 'Area Script' as notes FROM t_Area t1
UNION ALL SELECT t1.[AreaListResRefID], t1.[ModuleResRefVersionID], 'Area List' FROM t_Area t1
UNION ALL SELECT t1.[ObjectResRefID], t1.[ModuleResRefVersionID], 'Area Object' FROM t_AreaObject t1
UNION ALL SELECT t1.[ScriptResRefID], t1.[ModuleResRefVersionID], 'Area Music Volume Script' FROM t_AreaMusicVolume t1
-- Area Map
UNION ALL SELECT t1.[ParentMapResRefID], t1.[ModuleResRefVersionID], 'Area Map Parent' FROM t_Map t1
-- Associated Resource
UNION ALL SELECT t1.[ResRefID], t1.[ModuleResRefVersionID], 'Associated Resource' FROM t_AssociatedResource t1
-- Character
UNION ALL SELECT t1.[RoleResRefID], t1.[ModuleResRefVersionID], 'Character Role' FROM t_Character t1
UNION ALL SELECT t1.[SoundsetResRefID], t1.[ModuleResRefVersionID], 'Sound Set' FROM t_Character t1
-- Conversation
UNION ALL SELECT t1.[EndConversationPlotResRefID], t1.[ModuleResRefVersionID], 'End Conversation Plot' FROM t_Conversation t1
UNION ALL SELECT t1.[EndConversationScriptResRefID], t1.[ModuleResRefVersionID], 'End Conversation Script' FROM t_Conversation t1
UNION ALL SELECT t1.[StageResRefID], t1.[ModuleResRefVersionID], 'Conversation Root Stage' FROM t_Conversation t1
UNION ALL SELECT t1.[PreviewAreaResRefID], t1.[ModuleResRefVersionID], 'Conversation Root Preview Area' FROM t_Conversation t1
UNION ALL SELECT t1.[ActionPlotResRefID], t1.[ModuleResRefVersionID], 'Conversation Line Action Plot' FROM t_ConversationLine t1
UNION ALL SELECT t1.[ActionScriptResRefID], t1.[ModuleResRefVersionID], 'Conversation Line Action Script' FROM t_ConversationLine t1
UNION ALL SELECT t1.[ConditionPlotResRefID], t1.[ModuleResRefVersionID], 'Conversation Line Condition Plot' FROM t_ConversationLine t1
UNION ALL SELECT t1.[ConditionScriptResRefID], t1.[ModuleResRefVersionID], 'Conversation Line Condition Script' FROM t_ConversationLine t1
UNION ALL SELECT t1.[StageResRefID], t1.[ModuleResRefVersionID], 'Conversation Line Stage' FROM t_ConversationLine t1
UNION ALL SELECT t1.[CameraFunctionalShotResRefID], t1.[ModuleResRefVersionID], 'Conversation Line Camera Functional Shot' FROM t_ConversationLine t1
UNION ALL SELECT t1.[CustomCutsceneResRefID], t1.[ModuleResRefVersionID], 'Conversation Line Custom Cutscene' FROM t_ConversationLine t1
UNION ALL SELECT t1.[FunctionalShotResRefID], t1.[ModuleResRefVersionID], 'Conversation Cinematics Functional Shot' FROM t_ConversationCinematics t1
UNION ALL SELECT t1.[PreviewAreaResRefID], t1.[ModuleResRefVersionID], 'Conversation Line Preview Area' FROM t_ConversationLine t1
UNION ALL SELECT t1.[ValueResRefID], t1.[ModuleResRefVersionID], 'Conversation Tag Map' FROM t_ConversationTagMap t1
-- Creature
UNION ALL SELECT t1.[ConversationResRefID], t1.[ModuleResRefVersionID], 'Creature Conversation' FROM t_Creature t1
UNION ALL SELECT t1.[ScriptResRefID], t1.[ModuleResRefVersionID], 'Creature Script' FROM t_Creature t1
UNION ALL SELECT t1.[CharacterResRefID], t1.[ModuleResRefVersionID], 'Creature Character' FROM t_Creature t1
-- Cutscene
UNION ALL SELECT t1.[EndScriptResRefID], t1.[ModuleResRefVersionID], 'Cutscene End Script' FROM t_Cutscene t1
UNION ALL SELECT t1.[StageResRefID], t1.[ModuleResRefVersionID], 'Cutscene Stage' FROM t_Cutscene t1
UNION ALL SELECT t1.[ResRefID], t1.[ModuleResRefVersionID], 'Cutscene Object' FROM t_CutsceneObject t1
UNION ALL SELECT t1.[AreaResRefID], t1.[ModuleResRefVersionID], 'Cutscene Area' FROM t_Cutscene t1
UNION ALL SELECT t1.[ResRefID1], t1.[ModuleResRefVersionID], 'Cutscene Speak Line Conversation' FROM t_CutsceneAction t1
-- Inventory
UNION ALL SELECT t1.[ItemResRefID], t1.[ModuleResRefVersionID], 'Inventory Item' FROM t_Inventory t1
-- Item
UNION ALL SELECT t1.[ScriptResRefID], t1.[ModuleResRefVersionID], 'Item Script' FROM t_Item t1
-- Merchant
UNION ALL SELECT t1.[ScriptResRefID], t1.[ModuleResRefVersionID], 'Merchant Script' FROM t_Merchant t1
-- Placeable
UNION ALL SELECT t1.[ScriptResRefID], t1.[ModuleResRefVersionID], 'Placeable Script' FROM t_Placeable t1
UNION ALL SELECT t1.[ConversationResRefID], t1.[ModuleResRefVersionID], 'Placeable Conversation' FROM t_Placeable t1
UNION ALL SELECT t1.[CharacterResRefID], t1.[ModuleResRefVersionID], 'Placeable Character' FROM t_Placeable t1
-- Plot
UNION ALL SELECT t1.[ScriptResRefID], t1.[ModuleResRefVersionID], 'Plot Script' FROM t_Plot t1
UNION ALL SELECT t1.[ParentPlotResRefID], t1.[ModuleResRefVersionID], 'Parent plot' FROM t_Plot t1
-- Trigger
UNION ALL SELECT t1.[ScriptResRefID], t1.[ModuleResRefVersionID], 'Trigger Script' FROM t_Trigger t1
-- Script
UNION ALL SELECT t1.[ReferencedResRefID], t1.[ModuleResRefVersionID], 'Script Reference' FROM t_Script_Reference t1
-- Stage
UNION ALL SELECT t1.[AreaResRefID], t1.[ModuleResRefVersionID], 'Stage Area' FROM t_Stage t1
UNION ALL SELECT t1.[CreatureResRefID], t1.[ModuleResRefVersionID], 'Stage Creature' FROM t_StageObject t1
) rr1
JOIN t_ModuleResRefVersion mrrv on rr1.ModuleResRefVersionID = mrrv.[ID]
) vrr
left outer join t_ModuleResRef mrr on vrr.resrefid = mrr.resrefid
where vrr.ReferencedByVersionID = @iVersionID
and vrr.resrefid is not null
and mrr.currentmoduleresrefversionid is null
) drr on mrr.ResRefID = drr.ResRefID
where mrrv.id =
(select top 1 mrrv2.id from t_ModuleResRefVersion mrrv2
where mrrv2.moduleid = mrr.moduleid
and mrrv2.resrefid = mrr.resrefid
and mrrv2.status = 'H'
order by mrrv2.date desc)
END
SET NOCOUNT OFF
SELECT ResRefID , Level , ModuleID , OwnerModuleID ,
VersionID , RevisionID , ResType ,
ResRefName , Folder , ObjectName ,
CreatedBy , CreatedOn ,
IsCheckedOut , CheckedOutBy , CheckedOutOn ,
LastCheckInBy , LastCheckInOn , State,
Comment, IsDeleted
FROM @tResourceTable
IF (@@ERROR <> 0) GOTO ON_ERROR
return 0
---------------------------------------------------------------------
ON_ERROR:
---------------------------------------------------------------------
return @@ERROR
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
GRANT EXECUTE ON [dbo].[bsp_GetResourceReferenceList] TO [bw_db_read]
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE PROCEDURE [dbo].[bsp_GetRoleList]
@a_iModuleID INT,
@a_bUseModuleTree BIT
AS
DECLARE @iReturn INT
SELECT mrr.ResRefID,
CASE r.Name WHEN ''
THEN mrrv1.Name
ELSE r.Name
END as Name,
r.Description
FROM dbo.udf_GetModuleHierarchy(@a_iModuleID, @a_bUseModuleTree) mt
JOIN t_ModuleResRef mrr ON mt.ModuleID = mrr.ModuleID
JOIN t_ModuleResRefVersion mrrv1 ON mrr.CurrentModuleResRefVersionID = mrrv1.ID
JOIN t_Role r ON mrrv1.ID = r.ModuleResRefVersionID
SELECT @iReturn = @@ERROR
IF (@iReturn != 0) GOTO ON_ERROR
---------------------------------------------------------------------
ON_ERROR:
---------------------------------------------------------------------
RETURN @iReturn
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
GRANT EXECUTE ON [dbo].[bsp_GetRoleList] TO [bw_db_read]
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
------------------------------------------------------------------------
-- Stored Proc: bsp_GetVOScriptMaintenanceData
------------------------------------------------------------------------
-- Owned By: Chris Christou
-- Created On: February 22, 2007
-- Description: All of the data required for the Maintenance features
-- is loaded from this stored procedure.
--
-- Parameters:
-- @a_iVOScriptID - ID of VO Script to load data for. Cannot be NULL
-- @a_iStringLanguageID - StringLanguageID to load data from.
--
------------------------------------------------------------------------
CREATE PROCEDURE [dbo].[bsp_GetVOScriptMaintenanceData]
@a_iVOScriptID int,
@a_iStringLanguageID int
AS
SET NOCOUNT ON
DECLARE @iError int
CREATE TABLE #Results
(
[VOScriptID] int,
[VOScriptInstanceID] int,
[VOScriptInstanceStringID] int,
[StringLanguageID] int,
[StringID] int,
[StringVariantID] int,
[RecordedText] nText,
[CurrentText] nText,
[ScriptPrintedOn] datetime,
[ScriptPrintedBy] varchar(64)
)
SELECT @iError = @@ERROR
IF (@iError <> 0) GOTO ON_ERROR
------------------------------------------------------------------------
-- Get the lines related to our VO Script
------------------------------------------------------------------------
EXEC @iError = dbo.bsp_DetermineVOScriptLineCharacters @a_iVOScriptID, NULL
IF (@iError <> 0) GOTO ON_ERROR
DECLARE @tblStringIDToLoad TABLE ( [StringID] int )
------------------------------------------------------------------------
-- Determine the Strings that belong to this Script, or
-- belong to the character that is in this script.
-- (the difference is that some strings were most recently
-- printed with this script, but have been moved to another character,
-- or vice versa).
------------------------------------------------------------------------
INSERT @tblStringIDToLoad ( [StringID] )
(
SELECT voslci.[StringID]
FROM t_VOScript vos
JOIN t_VOScriptLineCharacterInternal voslci
ON voslci.[SPID] = @@SPID
AND vos.[ID] = @a_iVOScriptID
AND voslci.[ResourceModuleID] = vos.[ResourceModuleID]
AND voslci.[ResourceResRefID] = vos.[ResourceResRefID]
AND voslci.[CharacterModuleID] = vos.[CharacterModuleID]
AND voslci.[CharacterResRefID] = vos.[CharacterResRefID]
UNION
SELECT vosis.[StringID]
FROM t_VOScriptInstanceString vosis
JOIN t_VOScriptInstance vosi
ON vosis.[VOScriptInstanceID] = vosi.[ID]
AND vosi.[VOScriptID] = @a_iVOScriptID
AND vosi.[StringLanguageID] = @a_iStringLanguageID
WHERE vosis.[Active] = 'A'
)
SELECT @iError = @@ERROR
IF (@iError <> 0) GOTO ON_ERROR
------------------------------------------------------------------------
-- Now load all needed data from the strings that we calculated.
------------------------------------------------------------------------
INSERT #Results
SELECT vos.[ID], vosi.[ID], vosis.[ID],
vosi.[StringLanguageID], vosis.[StringID], vosis.[StringVariantID],
NULL, NULL, vosi.[PrintedOn], vosi.[CreatedBy]
FROM t_VOScript vos
JOIN t_VOScriptInstance vosi
ON vos.[ID] = vosi.[VOScriptID]
JOIN t_VOScriptInstanceString vosis
ON vosi.[ID] = vosis.[VOScriptInstanceID]
AND vosi.[StringLanguageID] = @a_iStringLanguageID
AND vosis.[Active] = 'A'
JOIN @tblStringIDToLoad sid
ON vosis.[StringID] = sid.[StringID]
SELECT @iError = @@ERROR
IF (@iError <> 0) GOTO ON_ERROR
-- Update English Recorded Text
UPDATE res
SET [RecordedText] = st.[Text]
FROM #Results res
JOIN t_VOScriptInstanceString vosis
ON res.[VOScriptInstanceStringID] = vosis.[ID]
AND vosis.[IsForeign] = 0
JOIN t_StringText st
ON st.[StringID] = vosis.[StringID]
AND st.[ModuleResRefVersionID] = vosis.[ModuleResRefVersionID]
AND st.[StringLanguageVariantID] = vosis.[StringLanguageVariantID]
SELECT @iError = @@ERROR
IF (@iError <> 0) GOTO ON_ERROR
-- Update Foreign Recorded Text
UPDATE res
SET [RecordedText] = slvt.[Text]
FROM #Results res
JOIN t_VOScriptInstanceString vosis
ON res.[VOScriptInstanceStringID] = vosis.[ID]
AND vosis.[IsForeign] = 1
JOIN t_StringLanguageVariantText slvt
ON slvt.[StringLanguageVariantVersionID] = vosis.[StringLanguageVariantVersionID]
AND slvt.[StringID] = vosis.[StringID]
SELECT @iError = @@ERROR
IF (@iError <> 0) GOTO ON_ERROR
-- Update English Current Text
UPDATE res
SET [CurrentText] = st.[Text]
FROM #Results res
JOIN t_VOScript vos
ON res.[VOScriptID] = vos.[ID]
JOIN t_VOScriptInstanceString vosis
ON res.[VOScriptInstanceStringID] = vosis.[ID]
AND vosis.[IsForeign] = 0
JOIN t_ModuleResRef mr
ON mr.[ModuleID] = vos.[ResourceModuleID]
AND mr.[ResRefID] = vos.[ResourceResRefID]
JOIN t_StringText st
ON st.[StringID] = res.[StringID]
AND st.[ModuleResRefVersionID] = mr.[CurrentModuleResRefVersionID]
AND st.[StringLanguageVariantID] = vosis.[StringLanguageVariantID]
SELECT @iError = @@ERROR
IF (@iError <> 0) GOTO ON_ERROR
-- Update Foreign Current Text
UPDATE res
SET [CurrentText] = slvt.[Text]
FROM #Results res
JOIN t_VOScriptInstanceString vosis
ON res.[VOScriptInstanceStringID] = vosis.[ID]
AND vosis.[IsForeign] = 1
JOIN t_StringLanguageVariantVersion slvvRecorded
ON slvvRecorded.[ID] = vosis.[StringLanguageVariantVersionID]
JOIN t_StringLanguageVariant slv
ON slv.[ID] = slvvRecorded.[StringLanguageVariantID]
JOIN t_StringLanguageVariantText slvt
ON slvt.[StringLanguageVariantVersionID] = slv.[CurrentStringLanguageVariantVersionID]
AND slvt.[StringID] = res.[StringID]
SELECT @iError = @@ERROR
IF (@iError <> 0) GOTO ON_ERROR
SELECT *
FROM #Results
SET NOCOUNT OFF
return 0
------------------------------------------------------------------------
ON_ERROR:
------------------------------------------------------------------------
SET NOCOUNT OFF
return @iError
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
GRANT EXECUTE ON [dbo].[bsp_GetVOScriptMaintenanceData] TO [bw_db_write]
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
------------------------------------------------------------------------
-- Stored Proc: bsp_GetVOScriptStats
------------------------------------------------------------------------
-- Owned By: Chris Christou
-- Created On: February 22, 2007
-- Description: Get the VO Script Statistics needed for the
-- VO Script Generator.
--
-- Parameters
-- a_iVOScriptID - VOScript ID to look up stats on, set as follows:
-- o NULL: Gets stats for All VO Scripts
-- o VOScriptID: Gets stats for one VO Script
-- a_iStringLanguageID - LanguageID to look up stats for
-- a_bIncludeBlankLines - set as follows:
-- o 1: includes blank lines
-- o 0: excludes them
-- a_bVerbose - Indicates that more fields are required in the output
--
-- Result Set:
-- VOScriptID - VOScript that Stats Record is for
-- LineCountEnglish - How many lines the English resource has that
-- can be VO Recorded (not to be confused with total lines
-- in a resource)
-- LineCount - How many lines the (a_iStringLanguageID) resource
-- has that can be VO Recorded.
-- CharacterLineCountEnglish - How many lines the English resource
-- has that are owned by this VO Script's character.
-- CharacterLineCount - How many lines the (a_iStringLanguageID)
-- resource has that are owned by this VO Script's character.
-- RecordCount - How many lines require recording for the first time
-- by this VO Script (in the specified language). Note that this
-- value does not include lines requiring re-recording.
-- ReRecordCount - How many lines require recording for the
-- second or more time by this VO Script (in the specified
-- language).
--
------------------------------------------------------------------------
CREATE PROCEDURE [dbo].[bsp_GetVOScriptStats]
@a_iVOScriptID int,
@a_iStringLanguageID int,
@a_bIncludeBlankLines bit,
@a_bVerbose bit = 0
AS
SET NOCOUNT ON
------------------------------------------------------------------------
-- !!! NOTE !!!
-- The LineCounts calculated here used to be chained to the
-- version of the resource returned from
-- bsp_DetermineVOScriptLineCharacters. This has been changed.
-- The live version is always used now, as it performs much
-- better. There is a risk that a resouce has
-- been updated during this BSP, and the Character Line Count
-- has newer data than the Resource Line Count.
-- We are willing to accept this for the performance gain.
------------------------------------------------------------------------
DECLARE @iError int
------------------------------------------------------------------------
-- Define result structure
------------------------------------------------------------------------
CREATE TABLE #tblResults
(
[VOScriptID] int NOT NULL,
[LineCountEnglish] int NOT NULL,
[LineCount] int NOT NULL,
[CharacterWordCountEnglish] int NOT NULL,
[CharacterLineCountEnglish] int NOT NULL,
[CharacterLineCount] int NOT NULL,
[RecordCount] int NOT NULL,
[ReRecordCount] int NOT NULL
)
SELECT @iError = @@ERROR
IF (@iError <> 0) GOTO ON_ERROR
------------------------------------------------------------------------
-- Make a place to hold our strings
------------------------------------------------------------------------
DECLARE @tStatsInternal TABLE (
[StringID] [int] NOT NULL ,
[ModuleID] [int] NOT NULL ,
[ResRefID] [int] NOT NULL ,
[StringLanguageID] [int] NOT NULL ,
[StringVariantID] [int] NOT NULL ,
[VORequestedOn] [datetime] NOT NULL ,
[ReqRecord] [bit] NOT NULL ,
[IsReRecord] [bit] NOT NULL,
[WordCount] [int] NOT NULL ,
[IsBlank] [bit] NOT NULL ,
[UsedInVO] [bit] NOT NULL
)
------------------------------------------------------------------------
-- Load the English Language ID
------------------------------------------------------------------------
DECLARE @iDevStringLanguageID int
SET @iDevStringLanguageID = dbo.udf_GetProjectStringLanguageID()
SELECT @iError = @@ERROR
IF (@iError <> 0) GOTO ON_ERROR
------------------------------------------------------------------------
-- Determine if we are working with a foreign language
------------------------------------------------------------------------
DECLARE @bForeignStringLanguage bit
IF (@a_iStringLanguageID = @iDevStringLanguageID)
BEGIN
SET @bForeignStringLanguage = 0
END
ELSE
BEGIN
SET @bForeignStringLanguage = 1
END
------------------------------------------------------------------------
-- Load the Resources/Strings/Characters for our data of interest
------------------------------------------------------------------------
EXEC @iError = [dbo].[bsp_DetermineVOScriptLineCharacters] @a_iVOScriptID, NULL
IF (@iError <> 0) GOTO ON_ERROR
------------------------------------------------------------------------
-- Remove lines that should not be recorded from the consideration set.
------------------------------------------------------------------------
EXEC @iError = [dbo].[bsp_AdjustVOScriptLineCharacterInternalForStats]
IF (@iError <> 0) GOTO ON_ERROR
------------------------------------------------------------------------
-- Initialize the Result set with the VO Scripts to be returned
------------------------------------------------------------------------
INSERT #tblResults
([VOScriptID], [LineCountEnglish], [LineCount],
[CharacterWordCountEnglish],
[CharacterLineCountEnglish], [CharacterLineCount],
[RecordCount], [ReRecordCount])
SELECT [ID], 0, 0,
0,
0, 0,
0, 0
FROM t_VOScript vos
WHERE vos.[IsActive] = 1
AND (@a_iVOScriptID IS NULL OR vos.[ID] = @a_iVOScriptID)
SELECT @iError = @@ERROR
IF (@iError <> 0) GOTO ON_ERROR
------------------------------------------------------------------------
-- Determine all strings that are elligible for recording.
-- We store other data with the StringID, such as the VORequestOn time.
-- For foreign languages, this is the ImportedOn datetime.
-- These values will be used to see what strings require re/recording.
------------------------------------------------------------------------
-- Get Conversation NPC and PC lines
INSERT @tStatsInternal
([StringID], [ModuleID], [ResRefID],
[StringLanguageID], [StringVariantID],
[WordCount],
[VORequestedOn],
[ReqRecord], [IsReRecord], [IsBlank],
[UsedInVO])
SELECT st.[StringID], mrv.[ModuleID], mrv.[ResRefID],
@iDevStringLanguageID, 1,
st.[WordCount],
st.[VORequestOn],
0, 0,
CASE
WHEN st.[WordCount] = 0 THEN 1
ELSE 0
END AS [IsBlank],
CASE
WHEN st.[WordCount] > 0 THEN 1
WHEN (LEFT(mrv.[Name], 3) = 'ss_' AND cl.[IsPC] = 0) THEN 1
ELSE 0
END AS [UsedInVO]
FROM t_ConversationLine cl
JOIN
(
SELECT DISTINCT mr.[CurrentModuleResRefVersionID]
FROM t_VOScript vos
JOIN #tblResults tResults
ON vos.[ID] = tResults.[VOScriptID]
JOIN t_ModuleResRef mr
ON vos.[ResourceModuleID] = mr.[ModuleID]
AND vos.[ResourceResRefID] = mr.[ResRefID]
AND mr.[CurrentModuleResRefVersionID] IS NOT NULL
) x
ON cl.[ModuleResRefVersionID] = x.[CurrentModuleResRefVersionID]
JOIN t_ModuleResRefVersion mrv
ON cl.[ModuleResRefVersionID] = mrv.[ID]
JOIN t_StringText st
ON cl.[TextStringID] = st.[StringID]
AND cl.[ModuleResRefVersionID] = st.[ModuleResRefVersionID]
AND (
-- NOTE! Return blank english text when looking for foreign data.
-- The foreign data may not be blank, but will be filtered correctly
-- on its own.
@bForeignStringLanguage = 1 OR
@a_bIncludeBlankLines = 1 OR
(LEFT(mrv.[Name], 3) = 'ss_' AND cl.[IsPC] = 0) OR
st.[WordCount] > 0)
SELECT @iError = @@ERROR
IF (@iError <> 0) GOTO ON_ERROR
-- Note: when there are sound sets and other strings, you will
-- load them into @tStatsInternal at this point
-- (these were nonexistent at time of development)
------------------------------------------------------------------------
-- When loading stats for a foreign language, load the available
-- strings into @tStatsInternal
------------------------------------------------------------------------
IF (@bForeignStringLanguage = 1)
BEGIN
DECLARE @tLangInfo TABLE
(
StringLanguageID int,
StringVariantID int,
StringLanguageVariantVersionID int
)
INSERT @tLangInfo
SELECT StringLanguageID, StringVariantID, CurrentStringLanguageVariantVersionID
FROM t_StringLanguageVariant
WHERE [StringLanguageID] = @a_iStringLanguageID
INSERT @tStatsInternal
([StringID], [ModuleID], [ResRefID],
[StringLanguageID], [StringVariantID], [VORequestedOn],
[ReqRecord], [IsReRecord],
[WordCount],
[IsBlank],
[UsedInVO])
SELECT slvt.[StringID], vossi.[ModuleID], vossi.[ResRefID],
slv.[StringLanguageID], slv.[StringVariantID], sis.[ImportedOn],
0, 0,
-1,
slvt.[IsBlank],
1
-- FROM t_StringLanguageVariant slv
FROM @tLangInfo slv
JOIN t_StringLanguageVariantText slvt WITH ( NOLOCK )
ON slv.[StringLanguageVariantVersionID] = slvt.[StringLanguageVariantVersionID]
-- ON slv.[StringLanguageID] = @a_iStringLanguageID
-- AND slv.[CurrentStringLanguageVariantVersionID] = slvt.[StringLanguageVariantVersionID]
JOIN t_StringImportSession sis WITH ( NOLOCK )
ON slvt.[StringImportSessionID] = sis.[ID]
JOIN @tStatsInternal vossi
ON slvt.[StringID] = vossi.[StringID]
WHERE
@a_bIncludeBlankLines = 1
OR slvt.[IsBlank] = 0
OR (vossi.[IsBlank] = 1 AND vossi.[UsedInVO] = 1 AND slv.[StringVariantID] = 1) -- these would be soundset placeholder lines. Only take the male versions.
SELECT @iError = @@ERROR
IF (@iError <> 0) GOTO ON_ERROR
------------------------------------------------------------------------
-- The English strings in @tStatsInternal contian blanks when
-- adding in the foreign strings. We now remove those blank strings
-- if applicable, before calculating the stats.
------------------------------------------------------------------------
DELETE ts
FROM @tStatsInternal ts
WHERE @a_bIncludeBlankLines = 0
AND [IsBlank] = 1
AND [UsedInVO] = 0
SELECT @iError = @@ERROR
IF (@iError <> 0) GOTO ON_ERROR
END
------------------------------------------------------------------------
-- For all of our strings, determine which ones require recording,
-- and which ones are Re-Records (have been Recorded before).
------------------------------------------------------------------------
IF (@bForeignStringLanguage = 0)
BEGIN
-- Calculate English String ReqRecords and ReRecords
UPDATE vossi
SET
[ReqRecord] = 1,
[IsReRecord] = CASE WHEN voRecorded.[StringID] IS NULL THEN 0 ELSE 1 END
FROM @tStatsInternal vossi
JOIN t_VOScriptLineCharacterInternal voslci
ON vossi.[StringID] = voslci.[StringID]
AND voslci.[SPID] = @@SPID
JOIN t_VOScript vos
ON voslci.ResourceModuleID = vos.ResourceModuleID
AND voslci.ResourceResRefID = vos.ResourceResRefID
AND voslci.CharacterModuleID = vos.CharacterModuleID
AND voslci.CharacterResRefID = vos.CharacterResRefID
LEFT OUTER JOIN
(
SELECT vosi.[VOScriptID] AS [RecordedVOScriptID], vosis.[StringID], vosis.[CompareDate]
FROM t_VOScriptInstanceString vosis
JOIN t_VOScriptInstance vosi
ON vosis.[VOScriptInstanceID] = vosi.[ID]
AND vosis.[Active] = 'A'
AND vosis.[Status] = 'P'
AND vosis.[IsForeign] = 0
) voRecorded
ON vos.[ID] = voRecorded.[RecordedVOScriptID]
AND vossi.[StringID] = voRecorded.[StringID]
WHERE vossi.[StringLanguageID] = @iDevStringLanguageID
AND (voRecorded.[StringID] IS NULL OR vossi.[VORequestedOn] > voRecorded.[CompareDate])
SELECT @iError = @@ERROR
IF (@iError <> 0) GOTO ON_ERROR
END
ELSE
BEGIN
-- Calculate Foreign String ReqRecords and ReRecords
UPDATE vossi
SET
[ReqRecord] = 1,
[IsReRecord] = CASE WHEN voRecorded.[StringID] IS NULL THEN 0 ELSE 1 END
FROM @tStatsInternal vossi
JOIN t_VOScriptLineCharacterInternal voslci
ON vossi.[StringID] = voslci.[StringID]
AND voslci.[SPID] = @@SPID
JOIN t_VOScript vos
ON voslci.ResourceModuleID = vos.ResourceModuleID
AND voslci.ResourceResRefID = vos.ResourceResRefID
AND voslci.CharacterModuleID = vos.CharacterModuleID
AND voslci.CharacterResRefID = vos.CharacterResRefID
LEFT JOIN
(
SELECT
vosi.[VOScriptID] AS [RecordedVOScriptID], vosis.[StringID],
vosis.[CompareDate],
slv.[StringLanguageID], slv.[StringVariantID]
FROM t_VOScriptInstanceString vosis
JOIN t_VOScriptInstance vosi
ON vosis.[VOScriptInstanceID] = vosi.[ID]
JOIN t_StringLanguageVariantVersion slvv
ON slvv.[ID] = vosis.[StringLanguageVariantVersionID]
JOIN t_StringLanguageVariant slv
ON slvv.[StringLanguageVariantID] = slv.[ID]
AND slv.[StringLanguageID] = @a_iStringLanguageID
WHERE vosis.[Active] = 'A'
AND vosis.[Status] = 'P'
AND vosis.[IsForeign] = 1
) voRecorded
ON vossi.[StringID] = voRecorded.[StringID]
AND vossi.[StringLanguageID] = voRecorded.[StringLanguageID]
AND vossi.[StringVariantID] = voRecorded.[StringVariantID]
AND vos.[ID] = voRecorded.[RecordedVOScriptID]
WHERE vossi.[StringLanguageID] = @a_iStringLanguageID
AND (voRecorded.[StringID] IS NULL OR vossi.[VORequestedOn] > voRecorded.[CompareDate])
SELECT @iError = @@ERROR
IF (@iError <> 0) GOTO ON_ERROR
END
------------------------------------------------------------------------
-- Calculate English Line Count of each VO Script's Resource
------------------------------------------------------------------------
UPDATE tr
SET
[LineCountEnglish] = vEngLineCount.[LineCount],
[LineCount] =
CASE @bForeignStringLanguage
WHEN 0 THEN vEngLineCount.[LineCount]
ELSE 0
END
FROM #tblResults tr
JOIN (
SELECT
vos.[ID] AS [VOScriptID],
COUNT(*) as [LineCount]
FROM t_VOScript vos
JOIN @tStatsInternal vossi
ON vos.[IsActive] = 1
AND vos.[ResourceModuleID] = vossi.[ModuleID]
AND vos.[ResourceResRefID] = vossi.[ResRefID]
AND vossi.[StringLanguageID] = @iDevStringLanguageID
GROUP BY vos.[ID]
) vEngLineCount
ON tr.[VOScriptID] = vEngLineCount.[VOScriptID]
SELECT @iError = @@ERROR
IF (@iError <> 0) GOTO ON_ERROR
------------------------------------------------------------------------
-- Calculate the following per VO Script:
-- o Number of Character's Lines (in English)
-- o VO Script Lines Requiring Recording (in English)
-- (excludes lines that are being re-recorded)
-- o VO Script Lines Requiring Re-Recording (in English)
------------------------------------------------------------------------
UPDATE tr
SET
[CharacterWordCountEnglish] = vLineCount.[WordCount],
[CharacterLineCountEnglish] = vLineCount.[LineCount],
[CharacterLineCount] =
CASE @bForeignStringLanguage
WHEN 0 THEN vLineCount.[LineCount]
ELSE 0
END,
[RecordCount] =
CASE @bForeignStringLanguage
WHEN 0 THEN vLineCount.[RecordLineCount]
ELSE 0
END,
[ReRecordCount] =
CASE @bForeignStringLanguage
WHEN 0 THEN vLineCount.[ReRecordLineCount]
ELSE 0
END
FROM #tblResults tr
JOIN (
SELECT
vos.[ID] AS [VOScriptID],
SUM(vossi.[WordCount]) as [WordCount],
COUNT(*) AS [LineCount],
COUNT(
CASE
WHEN (vossi.[ReqRecord] = 1 AND vossi.[IsReRecord] = 0) THEN 1
ELSE NULL
END) AS [RecordLineCount],
COUNT(
CASE vossi.[IsReRecord] WHEN 0 THEN NULL
ELSE 1
END) AS [ReRecordLineCount]
FROM t_VOScript vos
JOIN @tStatsInternal vossi
ON vos.[IsActive] = 1
AND vos.[ResourceModuleID] = vossi.[ModuleID]
AND vos.[ResourceResRefID] = vossi.[ResRefID]
AND vossi.[StringLanguageID] = @iDevStringLanguageID -- English
JOIN t_VOScriptLineCharacterInternal voslci
ON voslci.[SPID] = @@SPID
AND voslci.[StringID] = vossi.[StringID]
AND voslci.[CharacterModuleID] = vos.[CharacterModuleID]
AND voslci.[CharacterResRefID] = vos.[CharacterResRefID]
GROUP BY vos.[ID]
) vLineCount
ON tr.[VOScriptID] = vLineCount.[VOScriptID]
SELECT @iError = @@ERROR
IF (@iError <> 0) GOTO ON_ERROR
------------------------------------------------------------------------
-- Calculate Foreign Line Counts where applicable
-- o Character's Lines
-- o Lines Requiring Recording
-- (excludes lines that are being re-recorded)
-- o Lines Requiring Re-Recording
------------------------------------------------------------------------
IF (@bForeignStringLanguage = 1)
BEGIN
-- FOREIGN Resource LineCount per VO Script
UPDATE tr
SET
[LineCount] = vForeignResLineCount.[LineCount]
FROM #tblResults tr
JOIN (
SELECT
vos.[ID] AS [VOScriptID],
COUNT(*) as [LineCount]
FROM t_VOScript vos
JOIN @tStatsInternal vossi
ON vos.[IsActive] = 1
AND vos.[ResourceModuleID] = vossi.[ModuleID]
AND vos.[ResourceResRefID] = vossi.[ResRefID]
AND vossi.[StringLanguageID] = @a_iStringLanguageID
GROUP BY vos.[ID]
) vForeignResLineCount
ON tr.[VOScriptID] = vForeignResLineCount.[VOScriptID]
SELECT @iError = @@ERROR
IF (@iError <> 0) GOTO ON_ERROR
-- FOREIGN Character Lines per VO Script
-- FOREIGN Re/Recording Line Counts
UPDATE tr
SET
[CharacterLineCount] = vForeignCharLineCount.[LineCount],
[RecordCount] = vForeignCharLineCount.[RecordLineCount],
[ReRecordCount] = vForeignCharLineCount.[ReRecordLineCount]
FROM #tblResults tr
JOIN (
SELECT
vos.[ID] AS [VOScriptID],
COUNT(*) AS [LineCount],
COUNT(
CASE
WHEN (vossi.[ReqRecord] = 1 AND vossi.[IsReRecord] = 0) THEN 1
ELSE NULL
END) AS [RecordLineCount],
COUNT(
CASE vossi.[IsReRecord] WHEN 0 THEN NULL
ELSE 1
END) AS [ReRecordLineCount]
FROM t_VOScript vos
JOIN @tStatsInternal vossi
ON vos.[IsActive] = 1
AND vos.[ResourceModuleID] = vossi.[ModuleID]
AND vos.[ResourceResRefID] = vossi.[ResRefID]
AND vossi.[StringLanguageID] = @a_iStringLanguageID
JOIN t_VOScriptLineCharacterInternal voslci
ON voslci.[SPID] = @@SPID
AND voslci.[StringID] = vossi.[StringID]
AND voslci.[CharacterModuleID] = vos.[CharacterModuleID]
AND voslci.[CharacterResRefID] = vos.[CharacterResRefID]
GROUP BY vos.[ID]
) vForeignCharLineCount
ON tr.[VOScriptID] = vForeignCharLineCount.[VOScriptID]
SELECT @iError = @@ERROR
IF (@iError <> 0) GOTO ON_ERROR
END
------------------------------------------------------------------------
-- Return results
------------------------------------------------------------------------
IF @a_bVerbose = 0
BEGIN
SELECT
[VOScriptID],
[LineCountEnglish], [LineCount],
[CharacterWordCountEnglish],
[CharacterLineCountEnglish], [CharacterLineCount],
[RecordCount], [ReRecordCount]
FROM #tblResults
END
ELSE
BEGIN
SELECT
R.[VOScriptID],
MRRVR.[Name] AS [ResourceName],
MRRVR.[Folder] AS [ResourceFolder],
MRRVC.[Name] AS [CharacterResourceName],
CH.[Name] AS [CharacterName],
R.[LineCountEnglish],
R.[LineCount],
R.[CharacterWordCountEnglish],
R.[CharacterLineCountEnglish],
R.[CharacterLineCount],
R.[RecordCount],
R.[ReRecordCount]
FROM #tblResults R
JOIN t_VOScript VOS
ON R.[VOScriptID] = VOS.[ID]
JOIN t_ModuleResRef MRRR
ON VOS.[ResourceModuleID] = MRRR.[ModuleID]
AND VOS.[ResourceResRefID] = MRRR.[ResRefID]
JOIN t_ModuleResRefVersion MRRVR
ON MRRR.[CurrentModuleResRefVersionID] = MRRVR.[ID]
JOIN t_ModuleResRef MRRC
ON VOS.[CharacterModuleID] = MRRC.[ModuleID]
AND VOS.[CharacterResRefID] = MRRC.[ResRefID]
JOIN t_Character CH
ON MRRC.[CurrentModuleResRefVersionID] = CH.[ModuleResRefVersionID]
JOIN t_ModuleResRefVersion MRRVC
ON MRRC.[CurrentModuleResRefVersionID] = MRRVC.[ID]
END
------------------------------------------------------------------------
-- Dump our temp objects
------------------------------------------------------------------------
DROP TABLE #tblResults
SELECT @iError = @@ERROR
IF (@iError <> 0) GOTO ON_ERROR
------------------------------------------------------------------------
-- Remove our temp data
------------------------------------------------------------------------
DELETE FROM t_VOScriptLineCharacterInternal
WHERE [SPID] = @@SPID
SELECT @iError = @@ERROR
IF (@iError <> 0) GOTO ON_ERROR
SET NOCOUNT OFF
RETURN 0
------------------------------------------------------------------------
ON_ERROR:
------------------------------------------------------------------------
SET NOCOUNT OFF
RETURN @iError
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
GRANT EXECUTE ON [dbo].[bsp_GetVOScriptStats] TO [bw_db_write]
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
------------------------------------------------------------------------
-- Stored Proc: bsp_GetVOScriptStringsRequiringForeignRecording
------------------------------------------------------------------------
-- Owned By: Christopher Christou
-- Created On: November 03, 2008
-- Description: Returns the foreign strings that require recording
-- for a VO Script, and a set of Foreign Languages.
--
-- Parameters
-- a_iVOScriptID - IN - VOScriptID to look up data for
-- - Current Version of Conversation Resource will be used
-- - Cannot be NULL
-- a_sStringLanguageIDs - IN
-- Comma delimeted set of StringLanguageIDs that the script data should be retrieved for.
-- a_bIncludeBlankLines - IN
-- - set to 1 (true) to include blank lines in the count
-- - set to 0 (false) to exclude blank lines in the count
--
------------------------------------------------------------------------
CREATE PROCEDURE [dbo].[bsp_GetVOScriptStringsRequiringForeignRecording]
@a_iVOScriptID int,
@a_sStringLanguageIDs varchar(255),
@a_bIncludeBlankLines bit
AS
SET NOCOUNT ON
DECLARE @iError int
DECLARE @tStringLanguageIDs TABLE (
[ID] int not null
)
------------------------------------------------------------------------
-- Place desired StringLanguageIDs into @tStringLanguageIDs
------------------------------------------------------------------------
-- Wrap @a_sStringLanguageIDs in commas to make parsing easier
SET @a_sStringLanguageIDs = ',' + @a_sStringLanguageIDs + ','
-- Set starting search position
DECLARE @iCommaPos INT
SET @iCommaPos = 1
-- Look through @a_sStringLanguageIDs and make integers of all values between commas
WHILE @iCommaPos < LEN(@a_sStringLanguageIDs) --Don't include the last comma
BEGIN
INSERT INTO @tStringLanguageIDs
VALUES (SUBSTRING(
@a_sStringLanguageIDs,
@iCommaPos + 1,
CHARINDEX(',', @a_sStringLanguageIDs, @iCommaPos + 1) - @iCommaPos - 1))
-- Find the next comma
SELECT @iCommaPos = CHARINDEX(',', @a_sStringLanguageIDs, @iCommaPos + 1)
END
------------------------------------------------------------------------
-- Map the resource lines to Characters
------------------------------------------------------------------------
-- Then do the mapping
EXEC @iError = [dbo].[bsp_DetermineVOScriptLineCharacters] @a_iVOScriptID, NULL
IF (@iError <> 0) GOTO ON_ERROR
-- Then trim data so that all we have are lines for this VOScript's
-- resource and character.
DELETE voslci
FROM t_VOScriptLineCharacterInternal voslci
WHERE [SPID] = @@SPID
AND NOT EXISTS
( SELECT 1
FROM t_VOScript vos
WHERE vos.[ID] = @a_iVOScriptID
AND vos.[ResourceModuleID] = voslci.[ResourceModuleID]
AND vos.[ResourceResRefID] = voslci.[ResourceResRefID]
AND vos.[CharacterModuleID] = voslci.[CharacterModuleID]
AND vos.[CharacterResRefID] = voslci.[CharacterResRefID] )
SELECT @iError = @@ERROR
IF (@iError <> 0) GOTO ON_ERROR
------------------------------------------------------------------------
-- Remove lines that should not be recorded from the consideration set.
------------------------------------------------------------------------
EXEC @iError = [dbo].[bsp_AdjustVOScriptLineCharacterInternalForStats]
IF (@iError <> 0) GOTO ON_ERROR
------------------------------------------------------------------------
-- Look up the Requires Recording datetimestamp for each of these
-- character strings. For english this is VORequestOn, and for
-- foreign, this is ImportedOn. Store this data locally for now.
------------------------------------------------------------------------
DECLARE @tblStringVORequest TABLE (
[StringID] int,
[StringLanguageID] int,
[StringVariantID] int,
[VORequestOn] datetime NOT NULL,
[VORecordedOn] datetime NULL)
-- Load Foreign strings (all variants) + ImportedOn dates
INSERT INTO @tblStringVORequest
([StringID], [StringLanguageID],
[StringVariantID], [VORequestOn])
SELECT slvt.[StringID], slv.[StringLanguageID], slv.[StringVariantID], sis.[ImportedOn]
FROM @tStringLanguageIDs slToUse
JOIN t_StringLanguageVariant slv
ON slToUse.[ID] = slv.[StringLanguageID]
JOIN t_StringLanguageVariantText slvt
ON slvt.[StringLanguageVariantVersionID] = slv.[CurrentStringLanguageVariantVersionID]
AND (@a_bIncludeBlankLines = 1 OR slvt.[IsBlank] = 0)
JOIN t_VOScriptLineCharacterInternal voslci
ON [SPID] = @@SPID
AND slvt.[StringID] = voslci.[StringID]
JOIN t_StringImportSession sis
ON slvt.[StringImportSessionID] = sis.[ID]
SELECT @iError = @@ERROR
IF (@iError <> 0) GOTO ON_ERROR
UPDATE voRequest
SET voRequest.[VORecordedOn] = vosis.[CompareDate]
FROM @tblStringVORequest voRequest
JOIN t_VOScriptInstanceString vosis
ON voRequest.[StringID] = vosis.[StringID]
AND vosis.[Active] = 'A'
AND vosis.[Status] = 'P'
JOIN t_VOScriptInstance vosi
ON vosis.[VOScriptInstanceID] = vosi.[ID]
AND vosi.[VOScriptID] = @a_iVOScriptID
JOIN t_StringLanguageVariantVersion slvv
ON vosis.[StringLanguageVariantVersionID] = slvv.[ID]
JOIN t_StringLanguageVariant slv
ON slvv.[StringLanguageVariantID] = slv.[ID]
AND slv.[StringLanguageID] = voRequest.[StringLanguageID]
AND slv.[StringVariantID] = voRequest.[StringVariantID]
SELECT @iError = @@ERROR
IF (@iError <> 0) GOTO ON_ERROR
------------------------------------------------------------------------
-- Make the Requires Recording Comparison
------------------------------------------------------------------------
SELECT
@a_iVOScriptID as [VOScriptID],
voslci.[ResourceModuleResRefVersionID] as [ModuleResRefVersionID],
voRequest.[StringID],
voRequest.[StringLanguageID],
voRequest.[StringVariantID]
FROM @tblStringVORequest voRequest
JOIN t_VOScriptLineCharacterInternal voslci
ON voslci.[SPID] = @@SPID
AND voRequest.[StringID] = voslci.[StringID]
WHERE
(
voRequest.[VORecordedOn] IS NULL OR
voRequest.[VORequestOn] > voRequest.[VORecordedOn]
)
SELECT @iError = @@ERROR
IF (@iError <> 0) GOTO ON_ERROR
-- Remove the temp data
DELETE FROM t_VOScriptLineCharacterInternal WHERE [SPID] = @@SPID
SELECT @iError = @@ERROR
IF (@iError <> 0) GOTO ON_ERROR
SET NOCOUNT OFF
return 0
------------------------------------------------------------------------
ON_ERROR:
------------------------------------------------------------------------
SET NOCOUNT OFF
return @iError
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
GRANT EXECUTE ON [dbo].[bsp_GetVOScriptStringsRequiringForeignRecording] TO [bw_db_read]
GO
GRANT EXECUTE ON [dbo].[bsp_GetVOScriptStringsRequiringForeignRecording] TO [bw_db_write]
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
------------------------------------------------------------------------
-- Stored Proc: bsp_GetVOScriptStringsRequiringRecording
------------------------------------------------------------------------
-- Owned By: Chris Christou
-- Created On: February 14, 2007
-- Description: Returns the strings that require recording
-- for a script.
--
-- Parameters
-- a_iVOScriptID - IN - VOScriptID to look up data for
-- a_iResourceModuleResRefVersionID - IN - Version of resource
-- to look up data on. (if Language is not English, this does not
-- matter). Can be set to NULL if the version is not important,
-- and the caller wishes to use the current live version.
-- a_iStringLanguageID - IN
-- The Language that the script data should be retrieved for.
-- a_bIncludeBlankLines - IN
-- - set to 1 (true) to include blank lines in the count
-- - set to 0 (false) to exclude blank lines in the count
--
------------------------------------------------------------------------
CREATE PROCEDURE [dbo].[bsp_GetVOScriptStringsRequiringRecording]
@a_iVOScriptID int,
@a_iResourceModuleResRefVersionID int,
@a_iStringLanguageID int,
@a_bIncludeBlankLines bit
AS
SET NOCOUNT ON
DECLARE @iError int
------------------------------------------------------------------------
-- If a resource version is not given, look up the current version
------------------------------------------------------------------------
IF (@a_iResourceModuleResRefVersionID IS NULL)
BEGIN
SELECT @a_iResourceModuleResRefVersionID = mr.[CurrentModuleResRefVersionID]
FROM t_VOScript s
JOIN t_ModuleResRef mr
ON s.[ResourceModuleID] = mr.[ModuleID]
AND s.[ResourceResRefID] = mr.[ResRefID]
WHERE s.[ID] = @a_iVOScriptID
SELECT @iError = @@ERROR
IF (@iError <> 0) GOTO ON_ERROR
END
------------------------------------------------------------------------
-- Map the resource lines to Characters
------------------------------------------------------------------------
-- Then do the mapping
EXEC @iError = [dbo].[bsp_DetermineVOScriptLineCharacters] @a_iVOScriptID, @a_iResourceModuleResRefVersionID
IF (@iError <> 0) GOTO ON_ERROR
-- Then trim data so that all we have are lines for this VOScript's
-- resource and character.
DELETE voslci
FROM t_VOScriptLineCharacterInternal voslci
WHERE [SPID] = @@SPID
AND NOT EXISTS
( SELECT 1
FROM t_VOScript vos
WHERE vos.[ID] = @a_iVOScriptID
AND vos.[ResourceModuleID] = voslci.[ResourceModuleID]
AND vos.[ResourceResRefID] = voslci.[ResourceResRefID]
AND vos.[CharacterModuleID] = voslci.[CharacterModuleID]
AND vos.[CharacterResRefID] = voslci.[CharacterResRefID] )
SELECT @iError = @@ERROR
IF (@iError <> 0) GOTO ON_ERROR
------------------------------------------------------------------------
-- Remove lines that should not be recorded from the consideration set.
------------------------------------------------------------------------
EXEC @iError = [dbo].[bsp_AdjustVOScriptLineCharacterInternalForStats]
IF (@iError <> 0) GOTO ON_ERROR
------------------------------------------------------------------------
-- Look up the Requires Recording datetimestamp for each of these
-- character strings. For english this is VORequestOn, and for
-- foreign, this is ImportedOn. Store this data locally for now.
------------------------------------------------------------------------
DECLARE @tblStringVORequest TABLE (
[StringID] int,
[StringLanguageID] int,
[StringVariantID] int,
[VORequestOn] datetime NOT NULL,
[VORecordedOn] datetime NULL)
IF (@a_iStringLanguageID = dbo.udf_GetProjectStringLanguageID())
BEGIN
-- Load English strings + VORequestOn dates
INSERT INTO @tblStringVORequest
([StringID], [StringLanguageID],
[StringVariantID], [VORequestOn])
SELECT st.[StringID], 1, 1, st.[VORequestOn]
FROM t_StringText st
JOIN t_VOScriptLineCharacterInternal voslci
ON [SPID] = @@SPID
AND st.[StringID] = voslci.[StringID]
AND st.[ModuleResRefVersionID] = voslci.[ResourceModuleResRefVersionID]
AND st.[StringLanguageVariantID] = 1
AND (@a_bIncludeBlankLines = 1 OR st.[WordCount] > 0)
SELECT @iError = @@ERROR
IF (@iError <> 0) GOTO ON_ERROR
UPDATE voRequest
SET voRequest.[VORecordedOn] = vosis.[CompareDate]
FROM @tblStringVORequest voRequest
JOIN t_VOScriptInstanceString vosis
ON voRequest.[StringID] = vosis.[StringID]
AND vosis.[Active] = 'A'
AND vosis.[Status] = 'P'
AND vosis.[IsForeign] = 0
JOIN t_VOScriptInstance vosi
ON vosis.[VOScriptInstanceID] = vosi.[ID]
AND vosi.[VOScriptID] = @a_iVOScriptID
SELECT @iError = @@ERROR
IF (@iError <> 0) GOTO ON_ERROR
END
ELSE
BEGIN
-- Load Foreign strings (all variants) + ImportedOn dates
INSERT INTO @tblStringVORequest
([StringID], [StringLanguageID],
[StringVariantID], [VORequestOn])
SELECT slvt.[StringID], slv.[StringLanguageID], slv.[StringVariantID], sis.[ImportedOn]
FROM t_StringLanguageVariantText slvt
JOIN t_StringImportSession sis
ON slvt.[StringImportSessionID] = sis.[ID]
AND (@a_bIncludeBlankLines = 1 OR slvt.[IsBlank] = 0)
JOIN t_StringLanguageVariant slv
ON slvt.[StringLanguageVariantVersionID] = slv.[CurrentStringLanguageVariantVersionID]
AND slv.[StringLanguageID] = @a_iStringLanguageID
JOIN t_VOScriptLineCharacterInternal voslci
ON [SPID] = @@SPID
AND slvt.[StringID] = voslci.[StringID]
SELECT @iError = @@ERROR
IF (@iError <> 0) GOTO ON_ERROR
UPDATE voRequest
SET voRequest.[VORecordedOn] = vosis.[CompareDate]
FROM @tblStringVORequest voRequest
JOIN t_VOScriptInstanceString vosis
ON voRequest.[StringID] = vosis.[StringID]
AND vosis.[Active] = 'A'
AND vosis.[Status] = 'P'
JOIN t_VOScriptInstance vosi
ON vosis.[VOScriptInstanceID] = vosi.[ID]
AND vosi.[VOScriptID] = @a_iVOScriptID
JOIN t_StringLanguageVariantVersion slvv
ON vosis.[StringLanguageVariantVersionID] = slvv.[ID]
JOIN t_StringLanguageVariant slv
ON slvv.[StringLanguageVariantID] = slv.[ID]
AND slv.[StringLanguageID] = voRequest.[StringLanguageID]
AND slv.[StringVariantID] = voRequest.[StringVariantID]
SELECT @iError = @@ERROR
IF (@iError <> 0) GOTO ON_ERROR
END
------------------------------------------------------------------------
-- Make the Requires Recording Comparison
------------------------------------------------------------------------
SELECT
@a_iVOScriptID as [VOScriptID],
voslci.[ResourceModuleResRefVersionID] as [ModuleResRefVersionID],
voRequest.[StringID],
voRequest.[StringLanguageID],
voRequest.[StringVariantID]
FROM @tblStringVORequest voRequest
JOIN t_VOScriptLineCharacterInternal voslci
ON voslci.[SPID] = @@SPID
AND voRequest.[StringID] = voslci.[StringID]
WHERE
(
voRequest.[VORecordedOn] IS NULL OR
voRequest.[VORequestOn] > voRequest.[VORecordedOn]
)
SELECT @iError = @@ERROR
IF (@iError <> 0) GOTO ON_ERROR
-- Remove the temp data
DELETE FROM t_VOScriptLineCharacterInternal WHERE [SPID] = @@SPID
SELECT @iError = @@ERROR
IF (@iError <> 0) GOTO ON_ERROR
SET NOCOUNT OFF
return 0
------------------------------------------------------------------------
ON_ERROR:
------------------------------------------------------------------------
SET NOCOUNT OFF
return @iError
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
GRANT EXECUTE ON [dbo].[bsp_GetVOScriptStringsRequiringRecording] TO [bw_db_write]
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE PROCEDURE [dbo].[bsp_ImportStringsNotInRange]
AS
declare @iError int
declare @iRowCount int
declare @iModuleID int
declare @iOwnerModuleID int
declare @iResRefID int
declare @iCurrentVersionID int
declare @iScratchVersionID int
declare @smrrvName varchar(64)
declare @bDoUpdate bit
declare @iStringID int
declare @iStringTableID int
declare @iStringType int
declare @iNewStringID int
declare @iNewVersionID int
declare @sResType varchar(4)
declare @iImportedStringType int
declare @iStringIDStartRange int
declare @iStringIDEndRange int
declare @iCalcStringType int
declare @tabStringsToUpdate TABLE (CurrentVersionID int, ModuleID int, OwnerModuleID int,
StringID int, StringText text, StringDesc text, StringType int, StringMinorUpdateCount int,
StringReRecord bit, ResType varchar(4))
declare @tabModuleOwnerModuleTable TABLE (ModuleID int, OwnerModuleID int, ResRefID int
, CurrentVersionID int, ScratchVersionID int, Name varchar(32), DoUpdate bit)
select @iStringIDStartRange = convert(int, value)
from [BWE-DMZ2SQL1].bw_dragonage_content.dbo.t_globalparameters
where name = 'StringIDStartRange'
select @iStringIDEndRange = convert(int, value)
from [BWE-DMZ2SQL1].bw_dragonage_content.dbo.t_globalparameters
where name = 'StringIDEndRange'
select @iImportedStringType = id
from t_StringType
where name like 'Imported from Console'
-- First we need to get a list of all the unique module, owner module pairs
-- Insert them into a table variable to avoid the linked server transaction issue with a cursor
INSERT INTO @tabModuleOwnerModuleTable (ModuleID, OwnerModuleID)
select distinct mrrv.ModuleID, mrrv.OwnerModuleID
from [BWE-DMZ2SQL1].bw_dragonage_content.dbo.t_moduleresrefversion mrrv
join [BWE-DMZ2SQL1].bw_dragonage_content.dbo.t_stringversion sv on sv.moduleresrefversionid = mrrv.id
and sv.stringid between @iStringIDStartRange and @iStringIDEndRange
where mrrv.status = 'C'
DECLARE moduleownermodule_cursor CURSOR FOR
select ModuleID, OwnerModuleID
from @tabModuleOwnerModuleTable
OPEN moduleownermodule_cursor
FETCH NEXT FROM moduleownermodule_cursor INTO @iModuleID, @iOwnerModuleID
-- go through each pair and create it if it doesn't exist and then checkout the special resource for imported strings
WHILE @@FETCH_STATUS = 0
BEGIN
begin transaction tran1
set @smrrvName = 'ImportStringID-' + convert(varchar(4), @iModuleID) + '-' + convert(varchar(4), @iOwnerModuleID)
IF NOT EXISTS (SELECT 1 from t_ModuleResRefVersion mrrv
join t_ResRef rr on rr.id = mrrv.resrefid
and rr.restype = 'str'
where status = 'C'
and mrrv.name = @smrrvName)
BEGIN
-- Create the resource
exec @iError = dbo.bsp_AddResRef @iModuleID, @iOwnerModuleID, @smrrvName, '', 'str', 0, @iResRefID OUTPUT, @iCurrentVersionID OUTPUT
if (@iError = 0 AND @@ERROR <> 0)
BEGIN
SET @iError = @@ERROR
END
IF @iError <> 0 GOTO ON_ERROR
END
ELSE
BEGIN
SELECT @iResRefID = mrrv.resrefid,
@iCurrentVersionID = mrrv.id
from t_ModuleResRefVersion mrrv
join t_ResRef rr on rr.id = mrrv.resrefid
and rr.restype = 'str'
where status = 'C'
and mrrv.name = @smrrvName
END
-- We need to check to make sure this resource is not checked out, if it is we undo it before proceeding
SELECT @iScratchVersionID = isnull(ScratchModuleResRefVersionID, -1)
FROM t_moduleresref
WHERE ModuleID = @iModuleID
AND ResRefID = @iResRefID
SET @iError = @@ERROR
IF @iError <> 0 GOTO ON_ERROR
IF @iScratchVersionID > 0
BEGIN
-- Undo the checkout
exec @iError = dbo.bsp_deleteresource @iScratchVersionID, 0, 0, 1
if (@iError = 0 AND @@ERROR <> 0)
BEGIN
SET @iError = @@ERROR
END
IF @iError <> 0 GOTO ON_ERROR
END
-- Check out the resource
exec @iError = dbo.bsp_checkoutresource @iModuleID, @iResRefID, null, @iScratchVersionID OUTPUT
if (@iError = 0 AND @@ERROR <> 0)
BEGIN
SET @iError = @@ERROR
END
IF @iError <> 0 GOTO ON_ERROR
UPDATE @tabModuleOwnerModuleTable
SET ResRefID = @iResRefID, CurrentVersionID = @iCurrentVersionID,
ScratchVersionID = @iScratchVersionID, Name = @smrrvName, DoUpdate = 0
WHERE ModuleID = @iModuleID
AND OwnerModuleID = @iOwnerModuleID
SET @iError = @@ERROR
IF @iError <> 0 GOTO ON_ERROR
commit transaction tran1
FETCH NEXT FROM moduleownermodule_cursor INTO @iModuleID, @iOwnerModuleID
END
CLOSE moduleownermodule_cursor
DEALLOCATE moduleownermodule_cursor
-- INSERT
-- Get all the stringid's from the remote database in it's range that are not in our database
-- Put them into a table variable for update later
-- Empty the table variable
DELETE FROM @tabStringsToUpdate
INSERT INTO @tabStringsToUpdate (CurrentVersionID, ModuleID, OwnerModuleID,
StringID, StringText, StringDesc, StringType, ResType)
select mrrv.id, mrrv.ModuleID, mrrv.OwnerModuleID, st.stringid, '', '', sv.stringtypeid, rr.restype
from [BWE-DMZ2SQL1].bw_dragonage_content.dbo.t_moduleresrefversion mrrv
join [BWE-DMZ2SQL1].bw_dragonage_content.dbo.t_stringversion sv on sv.moduleresrefversionid = mrrv.id
and sv.stringid between @iStringIDStartRange and @iStringIDEndRange
join [BWE-DMZ2SQL1].bw_dragonage_content.dbo.t_stringtext st on st.stringid = sv.stringid
and st.moduleresrefversionid = mrrv.id
and st.stringlanguagevariantid = 1
join [BWE-DMZ2SQL1].bw_dragonage_content.dbo.t_ResRef rr on rr.id = mrrv.resrefid
where mrrv.status = 'C'
and not exists (select 1 from t_String where id = sv.stringid)
DECLARE stringidinsert_cursor CURSOR FOR
SELECT CurrentVersionID, ModuleID, OwnerModuleID,
StringID, StringType, ResType
FROM @tabStringsToUpdate
OPEN stringidinsert_cursor
FETCH NEXT FROM stringidinsert_cursor INTO @iCurrentVersionID, @iModuleID, @iOwnerModuleID,
@iStringID, @iStringType, @sResType
WHILE @@FETCH_STATUS = 0
BEGIN
select @iScratchVersionID = ScratchVersionID,
@iResRefID = ResRefID
from @tabModuleOwnerModuleTable
where ModuleID = @iModuleID and OwnerModuleID = @iOwnerModuleID
select @iStringTableID = StringTableID from t_Module
where id = @iModuleID
select @iCalcStringType = @iStringType
IF (@sResType <> 'str')
BEGIN
select @iCalcStringType = @iImportedStringType
END
begin transaction tran3
exec @iError = dbo.bsp_AddString @iScratchVersionID, 1, @iStringTableID, @iOwnerModuleID,
@iStringID, @iCalcStringType, '', '', @iResRefID, @iNewStringID OUTPUT, @iNewVersionID OUTPUT
if (@iError = 0 AND @@ERROR <> 0)
BEGIN
SET @iError = @@ERROR
END
IF @iError <> 0 GOTO ON_ERROR
UPDATE @tabModuleOwnerModuleTable
SET DoUpdate = 1
WHERE ModuleID = @iModuleID and OwnerModuleID = @iOwnerModuleID
commit transaction tran3
FETCH NEXT FROM stringidinsert_cursor INTO @iCurrentVersionID, @iModuleID, @iOwnerModuleID,
@iStringID, @iStringType, @sResType
END
CLOSE stringidinsert_cursor
DEALLOCATE stringidinsert_cursor
-- UPDATE
-- Get all the stringid's from the remote database in it's range that are in our database
-- Empty the table variable
DELETE FROM @tabStringsToUpdate
-- We need to add to the rows that are already in the table
INSERT INTO @tabStringsToUpdate (CurrentVersionID, ModuleID, OwnerModuleID,
StringID, StringText, StringDesc, StringType, StringMinorUpdateCount, StringReRecord)
select mrrv.id, mrrv.ModuleID, mrrv.OwnerModuleID, st.stringid, st.text, st.description,
sv.stringtypeid, st.MinorUpdateCount, st.ReRecord
from [BWE-DMZ2SQL1].bw_dragonage_content.dbo.t_moduleresrefversion mrrv
join [BWE-DMZ2SQL1].bw_dragonage_content.dbo.t_stringversion sv on sv.moduleresrefversionid = mrrv.id
and sv.stringid between @iStringIDStartRange and @iStringIDEndRange
join [BWE-DMZ2SQL1].bw_dragonage_content.dbo.t_stringtext st on st.stringid = sv.stringid
and st.moduleresrefversionid = mrrv.id
and st.stringlanguagevariantid = 1
where mrrv.status = 'C'
and exists (select 1 from t_String where id = sv.stringid)
DECLARE stringidupdate_cursor CURSOR FOR
SELECT CurrentVersionID, ModuleID, OwnerModuleID,
StringID
FROM @tabStringsToUpdate
OPEN stringidupdate_cursor
FETCH NEXT FROM stringidupdate_cursor INTO @iCurrentVersionID, @iModuleID, @iOwnerModuleID,
@iStringID
WHILE @@FETCH_STATUS = 0
BEGIN
select @iScratchVersionID = ScratchVersionID,
@iResRefID = ResRefID
from @tabModuleOwnerModuleTable
where ModuleID = @iModuleID and OwnerModuleID = @iOwnerModuleID
begin transaction tran2
UPDATE t_StringText
SET text = dev1.StringText,
description = dev1.StringDesc,
MinorUpdateCount = dev1.StringMinorUpdateCount,
ReRecord = dev1.StringReRecord
FROM t_StringText st
JOIN @tabStringsToUpdate dev1
ON dev1.CurrentVersionID = @iCurrentVersionID
AND dev1.ModuleID = @iModuleID
AND dev1.OwnerModuleID = @iOwnerModuleID
AND dev1.StringID = st.StringID
WHERE st.StringID = @iStringID
AND st.ModuleResRefVersionID = @iScratchVersionID
AND st.StringLanguageVariantID = 1
AND (convert(varchar(8000), text) <> convert(varchar(8000), dev1.StringText)
or convert(varchar(8000), description) <> convert(varchar(8000), dev1.StringDesc)
or MinorUpdateCount <> dev1.StringMinorUpdateCount
or ReRecord <> dev1.StringReRecord
)
SELECT @iError = @@ERROR, @iRowCount = @@ROWCOUNT
IF @iError <> 0 GOTO ON_ERROR
IF (@iRowCount > 0)
BEGIN
UPDATE @tabModuleOwnerModuleTable
SET DoUpdate = 1
WHERE ModuleID = @iModuleID and OwnerModuleID = @iOwnerModuleID
END
commit transaction tran2
FETCH NEXT FROM stringidupdate_cursor INTO @iCurrentVersionID, @iModuleID, @iOwnerModuleID,
@iStringID
END
CLOSE stringidupdate_cursor
DEALLOCATE stringidupdate_cursor
-- We can now Checkin all the module/ownermodule pair resources
DECLARE checkin_cursor CURSOR FOR
select ModuleID, OwnerModuleID, ResRefID,
CurrentVersionID, ScratchVersionID, Name, DoUpdate
from @tabModuleOwnerModuleTable
OPEN checkin_cursor
FETCH NEXT FROM checkin_cursor INTO @iModuleID, @iOwnerModuleID, @iResRefID,
@iCurrentVersionID, @iScratchVersionID, @smrrvName, @bDoUpdate
WHILE @@FETCH_STATUS = 0
BEGIN
begin transaction tran10
IF (@bDoUpdate = 1)
BEGIN
exec @iError = dbo.bsp_checkinresource null, null, @iScratchVersionID, 'Updating Strings'
if (@iError = 0 AND @@ERROR <> 0)
BEGIN
SET @iError = @@ERROR
END
IF @iError <> 0 GOTO ON_ERROR
END
ELSE
BEGIN
-- This is an undo checkout
exec @iError = dbo.bsp_deleteresource @iScratchVersionID, 0, 0, 1
if (@iError = 0 AND @@ERROR <> 0)
BEGIN
SET @iError = @@ERROR
END
IF @iError <> 0 GOTO ON_ERROR
END
commit transaction tran10
FETCH NEXT FROM checkin_cursor INTO @iModuleID, @iOwnerModuleID, @iResRefID,
@iCurrentVersionID, @iScratchVersionID, @smrrvName, @bDoUpdate
END
CLOSE checkin_cursor
DEALLOCATE checkin_cursor
return 0
---------------------------------------------------------------------
ON_ERROR:
---------------------------------------------------------------------
ROLLBACK TRANSACTION
return @iError
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
------------------------------------------------------------------------
-- STORED PROCEDURE: bsp_InsertStringLanguageVariantText
------------------------------------------------------------------------
-- Owned By: Chris Christou
-- Created On: September 21, 2006
-- Description: Insert a new Foreign Language String.
-- Used during Import Sessions.
------------------------------------------------------------------------
CREATE PROCEDURE [dbo].[bsp_InsertStringLanguageVariantText]
@a_iStringLanguageVariantVersionID int,
@a_iStringID int,
@a_wsText ntext,
@a_iStringImportSessionID int
AS
DECLARE @iError int
BEGIN TRANSACTION tranInsertStringLangVarText
DECLARE @iPrevStringLanguageVariantVersionID int
SET @iPrevStringLanguageVariantVersionID = NULL
SELECT @iPrevStringLanguageVariantVersionID = slvv.PreviousStringLanguageVariantVersionID
FROM t_StringLanguageVariantVersion slvv
WHERE slvv.[ID] = @a_iStringLanguageVariantVersionID
SELECT @iError = @@ERROR
if (@iError <> 0) GOTO ON_ERROR
IF (@iPrevStringLanguageVariantVersionID IS NOT NULL)
BEGIN
-- Check the Previous Text. If it matches @a_wsText, then do not add it.
IF EXISTS
(
SELECT 1
FROM t_StringLanguageVariantText slvt
WHERE slvt.[StringLanguageVariantVersionID] = @iPrevStringLanguageVariantVersionID
AND slvt.[StringID] = @a_iStringID
AND [dbo].[udf_nTextEquals] ( @a_wsText, slvt.[Text] ) = 1
)
BEGIN
GOTO ON_AFTER_INSERT
END
END
-- Insert the string. Let the keys do any validation necessary
INSERT INTO t_StringLanguageVariantText
([StringLanguageVariantVersionID], [StringID],
[Text], [StringImportSessionID],
[IsBlank])
VALUES (
@a_iStringLanguageVariantVersionID, @a_iStringID,
@a_wsText, @a_iStringImportSessionID,
CASE
WHEN @a_wsText LIKE '' THEN 1
ELSE 0 END
)
SELECT @iError = @@ERROR
if (@iError <> 0) GOTO ON_ERROR
---------------------------------------------------------------------
ON_AFTER_INSERT:
---------------------------------------------------------------------
COMMIT TRANSACTION tranInsertStringLangVarText
return 0
---------------------------------------------------------------------
ON_ERROR:
---------------------------------------------------------------------
ROLLBACK TRANSACTION
return @iError
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
GRANT EXECUTE ON [dbo].[bsp_InsertStringLanguageVariantText] TO [bw_db_write]
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
CREATE PROCEDURE [dbo].[bsp_LockResource]
@a_iModuleID INT,
@a_iRefRefID INT,
@a_bLock BIT
AS
DECLARE @iError int
, @iLock int
, @iRowCount int
BEGIN TRANSACTION tran_bsp_LockResource
IF @a_bLock = 1
BEGIN
SET @iLock = -1
END
ELSE
BEGIN
SET @iLock = 0
END
-- Update the properties on the module res ref
UPDATE t_ModuleResRefVersion
SET [State] = @iLock
FROM t_ModuleResRef mrr
WHERE [ID] = mrr.ScratchModuleResRefVersionID
AND [State] != @iLock
AND mrr.moduleid = @a_iModuleID and mrr.resrefid = @a_iRefRefID
SELECT @iError = @@ERROR, @iRowCount = @@ROWCOUNT
IF @iRowCount = 0 AND @iError = 0 SET @iError = -1
IF @iError <> 0 GOTO ON_ERROR
COMMIT TRANSACTION tran_bsp_LockResource
RETURN 0
---------------------------------------------------------------------
ON_ERROR:
---------------------------------------------------------------------
ROLLBACK TRANSACTION tran_bsp_LockResource
RETURN @iError
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
GRANT EXECUTE ON [dbo].[bsp_LockResource] TO [bw_db_lock]
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
------------------------------------------------------------------------
-- STORED PROCEDURE: bsp_ProcessPendingStringExportHistoryStatus
------------------------------------------------------------------------
-- Owned By: Chris Christou
-- Created On: November 16, 2006
-- Description:
--
------------------------------------------------------------------------
CREATE PROCEDURE [dbo].[bsp_ProcessPendingStringExportHistoryStatus]
AS
BEGIN
DECLARE @iError int
BEGIN TRANSACTION tranProcessPendingExportStatus
------------------------------------------------------------------------
-- Take all Pending New (N) records, and set them as the
-- Active records for that StringID. Any other record currently
-- marked Active must become flagged as Inactive.
------------------------------------------------------------------------
-- mark peviously current records as inactive
UPDATE eh
SET eh.[Status] = 'I'
FROM t_StringExportHistory eh
JOIN t_StringExportHistory ehNew
ON eh.[StringID] = ehNew.[StringID]
AND ehNew.[Status] = 'N'
AND eh.[Status] = 'A'
SELECT @iError = @@ERROR
if (@iError <> 0) GOTO ON_ERROR
-- mark new records as Active and record the effective comparedate
UPDATE eh
SET eh.[Status] = 'A',
eh.[CompareDate] = st.[LastMinorUpdateOn]
FROM t_StringExportHistory eh
JOIN t_StringText st
ON st.[StringID] = eh.[StringID]
AND st.[ModuleResRefVersionID] = eh.[ModuleResRefVersionID]
WHERE eh.[Status] = 'N'
SELECT @iError = @@ERROR
if (@iError <> 0) GOTO ON_ERROR
------------------------------------------------------------------------
-- Take all Pending Delete (X) records, and ensure that there is
-- an Active record for that StringID. If not, try to find and set
-- one from Inactive (where applicable).
------------------------------------------------------------------------
UPDATE eh
SET eh.[Status] = 'A'
FROM t_StringExportHistory eh
JOIN
(
SELECT ehMaxInternal.[StringID], MAX(ehMaxInternal.[StringExportLabelID]) as [MaxLabelID]
FROM t_StringExportHistory ehMaxInternal
WHERE ehMaxInternal.[Status] = 'I'
GROUP BY ehMaxInternal.[StringID]
) ehMax
ON eh.[StringID] = ehMax.[StringID]
AND eh.[StringExportLabelID] = ehMax.[MaxLabelID]
WHERE eh.[StringID] IN
(
SELECT ehX.[StringID]
FROM t_StringExportHistory ehX
WHERE ehX.[Status] = 'X'
AND ehX.[StringID] NOT IN
(
SELECT ehA.[StringID]
FROM t_StringExportHistory ehA
WHERE ehA.[StringID] = ehX.[StringID]
AND ehA.[Status] = 'A'
)
)
SELECT @iError = @@ERROR
if (@iError <> 0) GOTO ON_ERROR
UPDATE eh
SET eh.[Status] = 'D'
FROM t_StringExportHistory eh
WHERE eh.[Status] = 'X'
SELECT @iError = @@ERROR
if (@iError <> 0) GOTO ON_ERROR
COMMIT TRANSACTION tranProcessPendingExportStatus
return 0
---------------------------------------------------------------------
ON_ERROR:
---------------------------------------------------------------------
ROLLBACK TRANSACTION
return @iError
END
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
GRANT EXECUTE ON [dbo].[bsp_ProcessPendingStringExportHistoryStatus] TO [bw_db_write]
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
------------------------------------------------------------------------
-- STORED PROCEDURE: bsp_ProcessStringImportData
------------------------------------------------------------------------
-- Owned By: Chris Christou
-- Created On: September 21, 2006
-- Description: After the Import System adds import materials
-- into the database, this procedure does all the data
-- processing so that everything is ready to be accepted.
-- PRECONDITIONS:
-- - StringLanguageVariantVersions have been set up for all
-- LanguageVariants receiving imported data. The imported
-- data is also residing in these new versions.
------------------------------------------------------------------------
CREATE PROCEDURE [dbo].[bsp_ProcessStringImportData]
@a_iStringImportSessionID int,
@a_bExcludeNonExportedStrings bit
AS
DECLARE @iError int
BEGIN TRANSACTION tranProcessStringImportData
IF (@a_bExcludeNonExportedStrings = 1)
BEGIN
------------------------------------------------------------------------
-- Determine if there are any import strings that have never been
-- exported. Delete them. We only work on scratch versions.
------------------------------------------------------------------------
DELETE lvt
FROM t_StringLanguageVariantText lvt
JOIN t_StringLanguageVariant lv
ON lv.[ScratchStringLanguageVariantVersionID] = lvt.[StringLanguageVariantVersionID]
LEFT OUTER JOIN t_StringExportHistory eh
ON eh.[StringID] = lvt.[StringID]
AND (eh.[Status] = 'A' OR eh.[Status] = 'I')
WHERE lvt.[StringImportSessionID] = @a_iStringImportSessionID
AND eh.[StringID] IS NULL
SELECT @iError = @@ERROR
if (@iError <> 0) GOTO ON_ERROR
END
------------------------------------------------------------------------
-- Delete any import string data where there is no change in
-- translation from the last one
------------------------------------------------------------------------
DELETE lvt
FROM t_StringLanguageVariantText lvt
JOIN t_StringLanguageVariant lv
ON lvt.[StringLanguageVariantVersionID] = lv.[ScratchStringLanguageVariantVersionID] -- we want to work with scratch data only
JOIN t_StringLanguageVariantVersion lvv
ON lvt.[StringLanguageVariantVersionID] = lvv.[ID] -- use this to look at the previous import data
JOIN t_StringLanguageVariantText lvtPrevious
ON lvv.[PreviousStringLanguageVariantVersionID] = lvtPrevious.[StringLanguageVariantVersionID]
AND lvt.[StringID] = lvtPrevious.[StringID]
AND [dbo].[udf_nTextEquals](lvt.[Text], lvtPrevious.[Text]) = 1
WHERE lvt.[StringImportSessionID] = @a_iStringImportSessionID -- we want to work with this session's work
SELECT @iError = @@ERROR
if (@iError <> 0) GOTO ON_ERROR
------------------------------------------------------------------------
-- After cutting data from StringLanguageVariantVersions, there
-- might be some empty ones sitting around. Remove these.
------------------------------------------------------------------------
-- First, unset the Scratch Version Pointers
UPDATE lv
SET lv.[ScratchStringLanguageVariantVersionID] = NULL
FROM t_StringLanguageVariant lv
JOIN t_StringLanguageVariantVersion lvv
ON lv.[ScratchStringLanguageVariantVersionID] = lvv.[ID]
AND lvv.[StringImportSessionID] = @a_iStringImportSessionID
LEFT OUTER JOIN t_StringLanguageVariantText lvt
ON lvv.[ID] = lvt.[StringLanguageVariantVersionID]
WHERE lvt.[StringLanguageVariantVersionID] IS NULL
SELECT @iError = @@ERROR
if (@iError <> 0) GOTO ON_ERROR
-- Next, remove the scratch Versions
DELETE lvv
FROM t_StringLanguageVariantVersion lvv
LEFT OUTER JOIN t_StringLanguageVariantText lvt
ON lvv.[ID] = lvt.[StringLanguageVariantVersionID]
WHERE lvv.[StringImportSessionID] = @a_iStringImportSessionID
AND lvv.[Status] = 'S'
AND lvt.[StringLanguageVariantVersionID] IS NULL
SELECT @iError = @@ERROR
if (@iError <> 0) GOTO ON_ERROR
------------------------------------------------------------------------
-- The Scratch LanguageVariantVersions that we have added data to
-- probably will not have all strings in them, we need to add
-- these from past versions.
------------------------------------------------------------------------
INSERT INTO t_StringLanguageVariantText
([StringLanguageVariantVersionID], [StringID],
[Text], [StringImportSessionID], [IsBlank])
SELECT lvv.[ID], lvtPrevious.[StringID],
lvtPrevious.[Text], lvtPrevious.[StringImportSessionID], lvtPrevious.[IsBlank]
FROM t_StringLanguageVariant lv
JOIN t_StringLanguageVariantVersion lvv
ON lv.[ScratchStringLanguageVariantVersionID] = lvv.[ID] -- we only want scratch versions
AND lvv.[StringImportSessionID] = @a_iStringImportSessionID -- and scratch versions dealing with our import session
JOIN t_StringLanguageVariantText lvtPrevious
ON lvv.[PreviousStringLanguageVariantVersionID] = lvtPrevious.[StringLanguageVariantVersionID]
LEFT OUTER JOIN t_StringLanguageVariantText lvt
ON lvt.[StringLanguageVariantVersionID] = lvv.[ID]
AND lvt.[StringID] = lvtPrevious.[StringID]
WHERE lvt.[StringID] IS NULL
SELECT @iError = @@ERROR
if (@iError <> 0) GOTO ON_ERROR
------------------------------------------------------------------------
-- The Scratch LanguageVariantVersions that belong to our
-- ImportSession are ready to become the current versions.
-- Adjust away!
-- Steps:
-- 1. Set the 'C'urrent status of affected Versions to 'H' istory
-- 2. Set the 'S'cratch versions to 'C'urrent
-- 3. Set the CurrentVersions to point to the ScratchVersions
-- 4. Clear the ScratchVersions
------------------------------------------------------------------------
-- to make this easier, lets make a temp list of the affected StringLanguageVariantIDs
DECLARE @tblChangedLanguageVariant TABLE
(
[ID] int NOT NULL
)
INSERT INTO @tblChangedLanguageVariant ([ID])
SELECT lv.[ID]
FROM t_StringLanguageVariant lv
JOIN t_StringLanguageVariantVersion lvv
ON lv.[ScratchStringLanguageVariantVersionID] = lvv.[ID]
AND lvv.[StringImportSessionID] = @a_iStringImportSessionID
SELECT @iError = @@ERROR
if (@iError <> 0) GOTO ON_ERROR
-- 1. Set the 'C'urrent status of affected Versions to 'H' istory
UPDATE lvv
SET [Status] = 'H'
FROM t_StringLanguageVariantVersion lvv
JOIN @tblChangedLanguageVariant clv
ON lvv.[StringLanguageVariantID] = clv.[ID]
AND lvv.[Status] = 'C'
SELECT @iError = @@ERROR
if (@iError <> 0) GOTO ON_ERROR
-- 2. Set the 'S'cratch versions to 'C'urrent
UPDATE lvv
SET [Status] = 'C'
FROM t_StringLanguageVariantVersion lvv
JOIN @tblChangedLanguageVariant clv
ON lvv.[StringLanguageVariantID] = clv.[ID]
AND lvv.[Status] = 'S'
SELECT @iError = @@ERROR
if (@iError <> 0) GOTO ON_ERROR
-- 3. Set the CurrentVersions to point to the ScratchVersions
-- & 4. Clear the ScratchVersions
UPDATE lv
SET
[CurrentStringLanguageVariantVersionID] = [ScratchStringLanguageVariantVersionID],
[ScratchStringLanguageVariantVersionID] = NULL -- do this one second
FROM t_StringLanguageVariant lv
JOIN @tblChangedLanguageVariant clv
ON lv.[ID] = clv.[ID]
SELECT @iError = @@ERROR
if (@iError <> 0) GOTO ON_ERROR
COMMIT TRANSACTION tranProcessStringImportData
return 0
---------------------------------------------------------------------
ON_ERROR:
---------------------------------------------------------------------
ROLLBACK TRANSACTION
return @iError
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
GRANT EXECUTE ON [dbo].[bsp_ProcessStringImportData] TO [bw_db_write]
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
------------------------------------------------------------------------
-- Stored Proc: bsp_RerecordVOScript
------------------------------------------------------------------------
-- Owned By: Chris Christou
-- Created On: February 21, 2007
-- Description: Marks a string as requiring re-recording.
--
-- NOTE: String must have been recorded previously (and is not
-- unprinted). Otherwise nothing happens.
--
-- Parameters
-- @a_iVOScriptID - Script to Re-Record. When re-recording a single
-- string, it is still necessary to set the VOScript
-- @a_iStringLanguageID - Language that the VO Script is being
-- re-recorded in. If InstanceStringID is specified, this value
-- must match.
-- @a_iVOScriptInstanceStringID - Set as follows:
-- o NULL when re-recording a whole VO Script is wanted.
-- o InstanceStringID when re-recording a single string is wanted.
-- NOTE: String must be presently 'A'ctive.
-- @a_sComment - User comment to associate with the ReRecord action
--
------------------------------------------------------------------------
CREATE PROCEDURE [dbo].[bsp_RerecordVOScript]
@a_iVOScriptID int,
@a_iStringLanguageID int,
@a_iVOScriptInstanceStringID int,
@a_sComment nText
AS
SET NOCOUNT ON
DECLARE @iError int
BEGIN TRANSACTION tranRerecordVOScript
------------------------------------------------------------------------
-- Look up the affected VOScriptInstanceString records, and what
-- their corresponding VORequestOn/ImportOn values are
------------------------------------------------------------------------
DECLARE @tblVOStringRequest TABLE
( [VOScriptInstanceStringID] int NOT NULL,
[VORequestOn] datetime NOT NULL )
INSERT INTO @tblVOStringRequest
([VOScriptInstanceStringID], [VORequestOn])
SELECT
vosis.[ID] as [VOScriptInstanceStringID],
CASE vosis.[IsForeign]
WHEN 0 THEN st.[VORequestOn]
WHEN 1 THEN sis.[ImportedOn]
END AS [VORequestOn]
FROM t_VOScriptInstance vosi
JOIN t_VOScriptInstanceString vosis
-- Filter the VO Script of interest,
-- and the active lines from these VO Scripts.
-- Also filter the string, where applicable.
-- Also filter the Language of interest
ON vosi.[ID] = vosis.[VOScriptInstanceID]
AND vosi.[VOScriptID] = @a_iVOScriptID
AND vosi.[StringLanguageID] = @a_iStringLanguageID
AND vosis.[Active] = 'A'
AND (@a_iVOScriptInstanceStringID IS NULL OR vosis.[ID] = @a_iVOScriptInstanceStringID)
LEFT OUTER JOIN t_StringText st
ON vosis.[IsForeign] = 0
AND vosis.[StringID] = st.[StringID]
AND vosis.[ModuleResRefVersionID] = st.[ModuleResRefVersionID]
AND vosis.[StringLanguageVariantID] = st.[StringLanguageVariantID]
LEFT OUTER JOIN t_StringLanguageVariantText slvt
ON vosis.[IsForeign] = 1
AND vosis.[StringID] = slvt.[StringID]
AND vosis.[StringLanguageVariantVersionID] = slvt.[StringLanguageVariantVersionID]
LEFT OUTER JOIN t_StringImportSession sis
ON slvt.[StringImportSessionID] = sis.[ID]
SELECT @iError = @@ERROR
IF (@iError <> 0) GOTO ON_ERROR
------------------------------------------------------------------------
-- Update the CompareDate on the records of interest
------------------------------------------------------------------------
UPDATE vosis
SET [CompareDate] = DATEADD(ms, -5, tvoReq.[VORequestOn])
FROM @tblVOStringRequest tvoReq
JOIN t_VOScriptInstanceString vosis
ON tvoReq.[VOScriptInstanceStringID] = vosis.[ID]
SELECT @iError = @@ERROR
IF (@iError <> 0) GOTO ON_ERROR
------------------------------------------------------------------------
-- Add new InstanceStringStatus records
------------------------------------------------------------------------
INSERT INTO t_VOScriptInstanceStringStatus
([VOScriptInstanceStringID], [Active], [Action],
[CompareDate], [Revision], [Comment])
SELECT vosis.[ID], 'A', 'R',
vosis.[CompareDate], vosis.[Revision], @a_sComment
FROM @tblVOStringRequest tvoReq
JOIN t_VOScriptInstanceString vosis
ON tvoReq.[VOScriptInstanceStringID] = vosis.[ID]
SELECT @iError = @@ERROR
IF (@iError <> 0) GOTO ON_ERROR
COMMIT TRANSACTION tranRerecordVOScript
SET NOCOUNT OFF
return 0
------------------------------------------------------------------------
ON_ERROR:
------------------------------------------------------------------------
ROLLBACK TRANSACTION
SET NOCOUNT OFF
return @iError
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
GRANT EXECUTE ON [dbo].[bsp_RerecordVOScript] TO [bw_db_write]
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE PROCEDURE [dbo].[bsp_RestoreResourceVersion]
@a_iVersionID int
AS
declare @iNewVersionID int
declare @iError int
set @iError = 0
-- Start the main transaction
BEGIN TRANSACTION tran_bsp_RestoreResourceVersion
-- If the current version is null then we are restoring a deleted resource
-- We need to set the current version first to put it active again
UPDATE t_ModuleResRefVersion
SET Status = 'C'
FROM t_ModuleResRef mrr
WHERE t_ModuleResRefVersion.ID = @a_iVersionID
AND mrr.moduleid = t_ModuleResRefVersion.moduleid
and mrr.resrefid = t_ModuleResRefVersion.resrefid
and mrr.CurrentModuleResRefVersionID IS NULL
if (@@ERROR <> 0) GOTO ON_ERROR
UPDATE t_ModuleResRef
SET CurrentModuleResRefVersionID = @a_iVersionID
FROM t_ModuleResRefVersion mrrv
WHERE mrrv.id = @a_iVersionID
and mrrv.moduleid = t_ModuleResRef.moduleid
and mrrv.resrefid = t_ModuleResRef.resrefid
and t_ModuleResRef.CurrentModuleResRefVersionID IS NULL
if (@@ERROR <> 0) GOTO ON_ERROR
exec @iError = dbo.bsp_CheckOutResource NULL, NULL, @a_iVersionID, @iNewVersionID OUTPUT
if (@iError <> 0) GOTO ON_ERROR
COMMIT TRANSACTION tran_bsp_RestoreResourceVersion
return 0
---------------------------------------------------------------------
ON_ERROR:
---------------------------------------------------------------------
if (@iError = 0)
set @iError = @@ERROR
ROLLBACK TRANSACTION
return @iError
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
GRANT EXECUTE ON [dbo].[bsp_RestoreResourceVersion] TO [bw_db_write]
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
------------------------------------------------------------------------
-- Stored Proc: bsp_SetStringReTranslationState
------------------------------------------------------------------------
-- Owned By: Andy W. Desplenter
-- Created On: 2009 July 20
-- Description: Adjusts the CompareDate for a specific String ID's
-- export history to mark it as either requiring a new export or not.
--
-- Parameters
-- a_iStringID - String ID to adjust
-- a_cAction - Set as follows:
-- S - Set for retranslate,
-- N - set for DO NOT retranslate,
-- U - Unset, restore original CompareDate from t_StringText
-- a_sComment - User comment to associate with the ReTranslate action
--
-- NOTE: RAISERRORs are commented out because they obscure the return
-- code in the current implementation of the eclipse framework.
------------------------------------------------------------------------
CREATE PROCEDURE [dbo].[bsp_SetStringReTranslationState]
@a_iStringID INT,
@a_cAction CHAR,
@a_sComment NTEXT
AS
BEGIN
SET NOCOUNT ON
DECLARE @iError INT
DECLARE @iRowCt INT
DECLARE @iSEHID INT
DECLARE @iMRRVID INT
DECLARE @dtOldCompareDate DATETIME
DECLARE @dtNewCompareDate DATETIME
BEGIN TRANSACTION tran_SetReTranslate
-- verify action is one of the supported values
IF ( @a_cAction NOT IN ( 'N', 'S', 'U' ))
BEGIN
SET @iError = -50002
-- RAISERROR ('ERROR: bsp_SetStringReTranslationState: Action must be one of N, U or S', 16, -1)
GOTO ON_ERROR
END
-- verify comment is not null
IF (@a_sComment IS NULL)
BEGIN
SET @iError = -50003
-- RAISERROR ('ERROR: bsp_SetStringReTranslationState: COMMENT cannot be NULL', 16, -1)
GOTO ON_ERROR
END
------------------------------------------------------------------------
-- Find current StringExportHistory and its CompareDate
------------------------------------------------------------------------
SELECT
@iSEHID = seh.[ID],
@dtOldCompareDate = seh.[CompareDate],
@iMRRVID = seh.[ModuleResRefVersionID]
FROM [dbo].[t_StringExportHistory] seh
WHERE seh.[StringID] = @a_iStringID
AND seh.[Status] = 'A'
SELECT @iError = @@ERROR, @iRowCt = @@ROWCOUNT
IF (@iError <> 0) GOTO ON_ERROR
IF (@iRowCt = 0)
BEGIN
SET @iError = -50000
-- RAISERROR ('ERROR: bsp_SetStringReTranslationState: No export history found to modify', 16, -1)
GOTO ON_ERROR
END
------------------------------------------------------------------------
-- Determine new Compare date based upon select action
------------------------------------------------------------------------
IF ( @a_cAction = 'N' ) -- DO NOT retranslate
BEGIN
-- Set for DO NOT ReTranslate equates to fudging the CompareDate to
-- look like the translation is newer than anything in t_StringText
SELECT @dtNewCompareDate = GetDate()
END
ELSE
BEGIN
IF ( @a_cAction = 'S' )
BEGIN
-- Set for ReTranslation equates to fudging the CompareDate to look like there
-- is a newer change in t_StringText that needs translation
-- Uses [LastMajorUpdateOn] to force export whether or not minor updates
-- are included in the next export.
SELECT @dtNewCompareDate = DateAdd( ss, -5, [LastMajorUpdateOn] )
FROM t_StringText stExported
WHERE stExported.[ModuleResRefVersionID] = @iMRRVID
AND stExported.[StringID] = @a_iStringID
AND stExported.[StringLanguageVariantID] = 1
SELECT @iError = @@ERROR, @iRowCt = @@ROWCOUNT
IF (@iError <> 0) GOTO ON_ERROR
-- sanity check that a result was returned when getting UpdateOn from t_StringText
IF (@iRowCt <> 1)
BEGIN
SET @iError = -50004
-- RAISERROR ('ERROR: bsp_SetStringReTranslationState: Failed to get original UpdateOn date', 16, -1)
GOTO ON_ERROR
END
END
ELSE
BEGIN
IF ( @a_cAction = 'U' )
BEGIN
-- Unset Retranslate equates to just re-using the original compare date
-- get original CompareDate from the relevant MRRV and String in t_StringText
SELECT @dtNewCompareDate = [LastMinorUpdateOn]
FROM t_StringText stExported
WHERE stExported.[ModuleResRefVersionID] = @iMRRVID
AND stExported.[StringID] = @a_iStringID
AND stExported.[StringLanguageVariantID] = 1
SELECT @iError = @@ERROR, @iRowCt = @@ROWCOUNT
IF (@iError <> 0) GOTO ON_ERROR
-- sanity check that a result was returned when getting UpdateOn from t_StringText
IF (@iRowCt <> 1)
BEGIN
SET @iError = -50004
-- RAISERROR ('ERROR: bsp_SetStringReTranslationState: Failed to get original UpdateOn date', 16, -1)
GOTO ON_ERROR
END
END
ELSE -- redundant, but here for completeness with regard to future expansion
BEGIN
SET @iError = -50002
-- RAISERROR ('ERROR: bsp_SetStringReTranslationState: Action must be one of N, U or S', 16, -1)
GOTO ON_ERROR
END
END
END
------------------------------------------------------------------------
-- Add new Log entry for export history change
------------------------------------------------------------------------
INSERT INTO [t_StringExportHistoryAdjustmentLog]
( [StringExportHistoryID], [Action], [OldCompareDate], [NewCompareDate], [Comment] )
VALUES
( @iSEHID, @a_cAction, @dtOldCompareDate, @dtNewCompareDate, @a_sComment )
SELECT @iError = @@ERROR, @iRowCt = @@ROWCOUNT
IF (@iError <> 0) GOTO ON_ERROR
------------------------------------------------------------------------
-- Apply export history change
------------------------------------------------------------------------
UPDATE [t_StringExportHistory]
SET [CompareDate] = @dtNewCompareDate
WHERE [ID] = @iSEHID
AND [CompareDate] = @dtOldCompareDate
AND [Status] = 'A'
SELECT @iError = @@ERROR, @iRowCt = @@ROWCOUNT
IF (@iError <> 0) GOTO ON_ERROR
IF (@iRowCt <> 1)
BEGIN
SET @iError = -50001
-- RAISERROR ('ERROR: bsp_SetStringReTranslationState: Failed to adjust history record', 16, -1)
GOTO ON_ERROR
END
COMMIT TRANSACTION tran_SetReTranslate
SET NOCOUNT OFF
RETURN 0
------------------------------------------------------------------------
ON_ERROR:
------------------------------------------------------------------------
ROLLBACK TRANSACTION
SET NOCOUNT OFF
RETURN @iError
END
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
GRANT EXECUTE ON [dbo].[bsp_SetStringReTranslationState] TO [bw_db_write]
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
------------------------------------------------------------------------
-- STORED PROCEDURE: bsp_UndoStringImportSession
------------------------------------------------------------------------
-- Owned By: Chris Christou
-- Created On: September 22, 2006
-- Description: Undoes an Import Session
-- If the ImportSession is not Current, Error is returned.
-- Non-Current Sessions cannot be undone because it messes up the
-- logic when you undo current sessions.
-- If the ImportSession is Current, a new version of all affected
-- LanguageVariants will be created, using their previous text
-- versions.
------------------------------------------------------------------------
CREATE PROCEDURE [dbo].[bsp_UndoStringImportSession]
@a_iStringImportSessionID int
AS
DECLARE @iError int
BEGIN TRANSACTION tranUndoStringImportSession
------------------------------------------------------------------------
-- Check if this ImportSession is Current. If it's not, return error
------------------------------------------------------------------------
IF NOT EXISTS (
SELECT 1
FROM t_StringImportSession
WHERE [ID] = @a_iStringImportSessionID
AND [Status] = 'C'
)
BEGIN
SET @iError = -1
GOTO ON_ERROR
END
------------------------------------------------------------------------
-- Make a list of the LanguageVariants that are affected by this
-- Import Session.
------------------------------------------------------------------------
DECLARE @tblChangedLanguageVariant TABLE
(
[ID] int NOT NULL,
[PreviousStringLanguageVariantVersionID] int NULL
)
INSERT INTO @tblChangedLanguageVariant ([ID], [PreviousStringLanguageVariantVersionID])
SELECT lv.[ID], lvv.[PreviousStringLanguageVariantVersionID]
FROM t_StringLanguageVariant lv
JOIN t_StringLanguageVariantVersion lvv
ON lv.[CurrentStringLanguageVariantVersionID] = lvv.[ID]
AND lvv.[StringImportSessionID] = @a_iStringImportSessionID
SELECT @iError = @@ERROR
if (@iError <> 0) GOTO ON_ERROR
------------------------------------------------------------------------
-- Determine if any of these LanguageVariants currently have a scratch
-- Version. If so we cannot proceed and must error out.
------------------------------------------------------------------------
IF EXISTS (
SELECT 1
FROM t_StringLanguageVariant lv
JOIN @tblChangedLanguageVariant clv
ON lv.[ID] = clv.[ID]
WHERE lv.[ScratchStringLanguageVariantVersionID] IS NOT NULL
)
BEGIN
SET @iError = -1
GOTO ON_ERROR
END
------------------------------------------------------------------------
-- In case any LangaugeVariants have no previous version, we
-- remove their Current Version
-- Part 1: unset 'C' Status
------------------------------------------------------------------------
UPDATE lvv
SET lvv.[Status] = 'H'
FROM t_StringLanguageVariantVersion lvv
JOIN @tblChangedLanguageVariant clv
ON lvv.[StringLanguageVariantID] = clv.[ID]
WHERE lvv.[Status] = 'C'
AND lvv.[PreviousStringLanguageVariantVersionID] IS NULL
SELECT @iError = @@ERROR
if (@iError <> 0) GOTO ON_ERROR
------------------------------------------------------------------------
-- In case any LangaugeVariants have no previous version, we
-- remove their Current Version
-- Part 2: clear CurrentStringLanguageVariantVersionIDs
------------------------------------------------------------------------
UPDATE lv
SET lv.[CurrentStringLanguageVariantVersionID] = NULL
FROM t_StringLanguageVariant lv
JOIN @tblChangedLanguageVariant clv
ON lv.[ID] = clv.[ID]
WHERE clv.[PreviousStringLanguageVariantVersionID] IS NULL
SELECT @iError = @@ERROR
if (@iError <> 0) GOTO ON_ERROR
------------------------------------------------------------------------
-- Trim out any LanguageVariants whose versions we just cleared
-- from @tblChangedLanguageVariant
------------------------------------------------------------------------
DELETE clv
FROM @tblChangedLanguageVariant clv
WHERE clv.[PreviousStringLanguageVariantVersionID] IS NULL
SELECT @iError = @@ERROR
if (@iError <> 0) GOTO ON_ERROR
------------------------------------------------------------------------
-- Make new Scratch Language Variant Versions for the remaining
-- LanguageVariants.
------------------------------------------------------------------------
INSERT INTO t_StringLanguageVariantVersion
([StringLanguageVariantID], [Status],
[PreviousStringLanguageVariantVersionID], [StringImportSessionID])
SELECT lvvPrevious.[StringLanguageVariantID], 'S',
lvvPrevious.[PreviousStringLanguageVariantVersionID], lvvPrevious.[StringImportSessionID]
FROM @tblChangedLanguageVariant clv
JOIN t_StringLanguageVariantVersion lvvPrevious
ON clv.[ID] = lvvPrevious.[StringLanguageVariantID]
AND clv.[PreviousStringLanguageVariantVersionID] = lvvPrevious.[ID]
SELECT @iError = @@ERROR
if (@iError <> 0) GOTO ON_ERROR
------------------------------------------------------------------------
-- Set these new records as the Scratch Language Variant Versions
------------------------------------------------------------------------
UPDATE lv
SET lv.[ScratchStringLanguageVariantVersionID] = lvv.[ID]
FROM t_StringLanguageVariant lv
JOIN @tblChangedLanguageVariant clv
ON lv.[ID] = clv.[ID]
JOIN t_StringLanguageVariantVersion lvv
ON lv.[ID] = lvv.[StringLanguageVariantID]
AND lvv.[Status] = 'S'
SELECT @iError = @@ERROR
if (@iError <> 0) GOTO ON_ERROR
------------------------------------------------------------------------
-- These Scratch Versions now need text added to them from the
-- Previous LanguageVariant Versions
------------------------------------------------------------------------
INSERT INTO t_StringLanguageVariantText
([StringLanguageVariantVersionID], [StringID],
[Text], [StringImportSessionID], [IsBlank])
SELECT lv.[ScratchStringLanguageVariantVersionID], lvtPrevious.[StringID],
lvtPrevious.[Text], lvtPrevious.[StringImportSessionID], lvtPrevious.[IsBlank]
FROM t_StringLanguageVariant lv
JOIN @tblChangedLanguageVariant clv
ON lv.[ID] = clv.[ID]
JOIN t_StringLanguageVariantText lvtPrevious
ON clv.[PreviousStringLanguageVariantVersionID] = lvtPrevious.[StringLanguageVariantVersionID]
SELECT @iError = @@ERROR
if (@iError <> 0) GOTO ON_ERROR
------------------------------------------------------------------------
-- All of the Scratch Records can now be promoted to Current
-- Part 1: Set related Current records as History
-- Part 2: Set Scratch Records to Current
-- Part 3: Point Current Versions at new Current Versions
-- and Erase Scratch Version Pointer
------------------------------------------------------------------------
------------------------------------------------------------------------
-- Part 1: Set related Current records as History
------------------------------------------------------------------------
UPDATE lvv
SET [Status] = 'H'
FROM t_StringLanguageVariantVersion lvv
JOIN @tblChangedLanguageVariant clv
ON lvv.[StringLanguageVariantID] = clv.[ID]
AND lvv.[Status] = 'C'
SELECT @iError = @@ERROR
if (@iError <> 0) GOTO ON_ERROR
------------------------------------------------------------------------
-- Part 2: Set Scratch Records to Current
------------------------------------------------------------------------
UPDATE lvv
SET [Status] = 'C'
FROM t_StringLanguageVariantVersion lvv
JOIN @tblChangedLanguageVariant clv
ON lvv.[StringLanguageVariantID] = clv.[ID]
AND lvv.[Status] = 'S'
SELECT @iError = @@ERROR
if (@iError <> 0) GOTO ON_ERROR
------------------------------------------------------------------------
-- Part 3: Point Current Versions at new Current Versions
-- and Erase Scratch Version Pointer
------------------------------------------------------------------------
UPDATE lv
SET
[CurrentStringLanguageVariantVersionID] = [ScratchStringLanguageVariantVersionID],
[ScratchStringLanguageVariantVersionID] = NULL -- do this one second
FROM t_StringLanguageVariant lv
JOIN @tblChangedLanguageVariant clv
ON lv.[ID] = clv.[ID]
SELECT @iError = @@ERROR
if (@iError <> 0) GOTO ON_ERROR
------------------------------------------------------------------------
-- Set the given ImportSession Status to Undo
------------------------------------------------------------------------
UPDATE t_StringImportSession
SET [Status] = 'U'
WHERE [ID] = @a_iStringImportSessionID
SELECT @iError = @@ERROR
if (@iError <> 0) GOTO ON_ERROR
------------------------------------------------------------------------
-- Set a new Session to Current
------------------------------------------------------------------------
UPDATE s
SET [Status] = 'C'
FROM t_StringImportSession s
JOIN (
SELECT MAX(sis.[ID]) as [MaxSessionID]
FROM t_StringImportSession sis
WHERE sis.[ID] < @a_iStringImportSessionID
AND sis.[Status] = 'H'
) maxs
ON s.[ID] = maxs.[MaxSessionID]
SELECT @iError = @@ERROR
if (@iError <> 0) GOTO ON_ERROR
COMMIT TRANSACTION tranUndoStringImportSession
return 0
---------------------------------------------------------------------
ON_ERROR:
---------------------------------------------------------------------
ROLLBACK TRANSACTION
return @iError
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
GRANT EXECUTE ON [dbo].[bsp_UndoStringImportSession] TO [bw_db_write]
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
------------------------------------------------------------------------
-- Stored Proc: bsp_UnprintVOScriptInstance
------------------------------------------------------------------------
-- Owned By: Chris Christou
-- Created On: February 21, 2007
-- Description: Marks a VO Script Instance or an Instance String as
-- unprinted.
--
-- NOTE: Only Strings that are Active will be set to unprinted.
--
-- Parameters
-- a_iVOScriptInstanceID - Script Instance to Unprint. If
-- unprinting a string, this must still be set.
-- a_iVOScriptInstanceStringID - Set as follows:
-- o NULL when unprinting a whole script instance.
-- o InstanceStringID when unprinting a single string.
-- a_sComment - User comment to associate with the ReRecord action
------------------------------------------------------------------------
CREATE PROCEDURE [dbo].[bsp_UnprintVOScriptInstance]
@a_iVOScriptInstanceID int,
@a_iVOScriptInstanceStringID int,
@a_sComment nText
AS
SET NOCOUNT ON
DECLARE @iError int
BEGIN TRANSACTION tranUnprintVOScript
------------------------------------------------------------------------
-- Look up the affected VOScriptInstanceString records.
------------------------------------------------------------------------
DECLARE @tblVOStringToUnprint TABLE
( [VOScriptInstanceStringID] int NOT NULL )
INSERT INTO @tblVOStringToUnprint
([VOScriptInstanceStringID])
SELECT
vosis.[ID] as [VOScriptInstanceStringID]
FROM t_VOScriptInstanceString vosis
WHERE [VOScriptInstanceID] = @a_iVOScriptInstanceID
AND [Active] = 'A'
AND (@a_iVOScriptInstanceStringID IS NULL OR [ID] = @a_iVOScriptInstanceStringID)
SELECT @iError = @@ERROR
IF (@iError <> 0) GOTO ON_ERROR
------------------------------------------------------------------------
-- Inactivate these records, and set status to unprinted
------------------------------------------------------------------------
UPDATE vosis
SET [Active] = 'I',
[Status] = 'U'
FROM @tblVOStringToUnprint tvoUnprint
JOIN t_VOScriptInstanceString vosis
ON tvoUnprint.[VOScriptInstanceStringID] = vosis.[ID]
SELECT @iError = @@ERROR
IF (@iError <> 0) GOTO ON_ERROR
------------------------------------------------------------------------
-- Add new InstanceStringStatus records
------------------------------------------------------------------------
INSERT INTO t_VOScriptInstanceStringStatus
([VOScriptInstanceStringID], [Active], [Action],
[CompareDate], [Revision], [Comment])
SELECT vosis.[ID], 'A', 'U',
vosis.[CompareDate], vosis.[Revision], @a_sComment
FROM @tblVOStringToUnprint tvoUnprint
JOIN t_VOScriptInstanceString vosis
ON tvoUnprint.[VOScriptInstanceStringID] = vosis.[ID]
SELECT @iError = @@ERROR
IF (@iError <> 0) GOTO ON_ERROR
------------------------------------------------------------------------
-- Set the previous script instance strings as active
------------------------------------------------------------------------
UPDATE vosisPrev
SET [Active] = 'A'
FROM @tblVOStringToUnprint tvoUnprint
JOIN t_VOScriptInstanceString vosis
ON tvoUnprint.[VOScriptInstanceStringID] = vosis.[ID]
JOIN t_VOScriptInstanceString vosisPrev
ON vosis.[PreviousVOScriptInstanceStringID] = vosisPrev.[ID]
SELECT @iError = @@ERROR
IF (@iError <> 0) GOTO ON_ERROR
------------------------------------------------------------------------
-- Add new InstanceStringStatus records for the previous script
------------------------------------------------------------------------
INSERT INTO t_VOScriptInstanceStringStatus
([VOScriptInstanceStringID], [Active], [Action],
[CompareDate], [Revision], [Comment])
SELECT vosisPrev.[ID], 'A', 'P',
vosisPrev.[CompareDate], vosisPrev.[Revision], @a_sComment
FROM @tblVOStringToUnprint tvoUnprint
JOIN t_VOScriptInstanceString vosis
ON tvoUnprint.[VOScriptInstanceStringID] = vosis.[ID]
JOIN t_VOScriptInstanceString vosisPrev
ON vosis.[PreviousVOScriptInstanceStringID] = vosisPrev.[ID]
SELECT @iError = @@ERROR
IF (@iError <> 0) GOTO ON_ERROR
------------------------------------------------------------------------
-- Mark the ScriptInstance as Unprinted, if there are no more active
-- strings underneath it.
------------------------------------------------------------------------
IF NOT EXISTS
(SELECT 1
FROM t_VOScriptInstanceString vosis
WHERE vosis.[VOScriptInstanceID] = @a_iVOScriptInstanceID
AND [Status] = 'P')
BEGIN
-- First mark another ScriptInstance as active if necessary
UPDATE vosiUpdate
SET [Active] = 'A'
FROM t_VOScriptInstance vosiUpdate
WHERE vosiUpdate.[ID] =
(
SELECT MAX(vosi.[ID])
FROM t_VOScriptInstance vosiCurrent
JOIN t_VOScriptInstance vosi
ON vosiCurrent.[VOScriptID] = vosi.[VOScriptID]
AND vosiCurrent.[StringLanguageID] = vosi.[StringLanguageID]
AND vosi.[Active] != 'U'
AND vosi.[ID] < vosiCurrent.[ID]
WHERE vosiCurrent.[ID] = @a_iVOScriptInstanceID
AND vosiCurrent.[Active] = 'A'
)
-- Second mark this ScriptInstance as Unprinted
UPDATE vosi
SET [Active] = 'U'
FROM t_VOScriptInstance vosi
WHERE [ID] = @a_iVOScriptInstanceID
SELECT @iError = @@ERROR
IF (@iError <> 0) GOTO ON_ERROR
END
COMMIT TRANSACTION tranUnprintVOScript
SET NOCOUNT OFF
return 0
------------------------------------------------------------------------
ON_ERROR:
------------------------------------------------------------------------
ROLLBACK TRANSACTION
SET NOCOUNT OFF
return @iError
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
GRANT EXECUTE ON [dbo].[bsp_UnprintVOScriptInstance] TO [bw_db_write]
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
CREATE PROCEDURE [dbo].[bsp_UpdateResourceProperties]
@a_sName VARCHAR(32),
@a_sFolder VARCHAR(128),
@a_iOldModuleID INT,
@a_iNewModuleID INT,
@a_iNewOwnerModuleID INT,
@a_iResRefID INT,
@a_iState INT
AS
DECLARE @iError int
, @iRowCount int
BEGIN TRANSACTION tran_bsp_UpdateResourceProp
-- Test if the module is being changed
IF (@a_iOldModuleID <> @a_iNewModuleID)
BEGIN
-- Create a new module res ref
INSERT INTO t_ModuleResRef
(ModuleID, ResRefID, CurrentModuleResRefVersionID, ScratchModuleResRefVersionID, CreatedOn, CreatedBy)
SELECT @a_iNewModuleID, ResRefID, CurrentModuleResRefVersionID, ScratchModuleResRefVersionID, CreatedOn, CreatedBy
FROM t_ModuleResRef
WHERE ModuleID = @a_iOldModuleID and ResRefID = @a_iResRefID
SET @iError = @@ERROR
IF (@iError <> 0) GOTO ON_ERROR
-- Move all of the historical versions over to this module res ref
UPDATE t_ModuleResRefVersion
SET ModuleID = @a_iNewModuleID
WHERE ModuleID = @a_iOldModuleID and ResRefID = @a_iResRefID
SET @iError = @@ERROR
IF (@iError <> 0) GOTO ON_ERROR
-- Move all of the strings to the new string table
UPDATE st
SET st.StringTableID = mo.StringTableID
FROM t_String st
JOIN t_stringversion sv on st.id = sv.stringid
join t_moduleresrefversion mrrv on sv.moduleresrefversionid = mrrv.id
join t_module mo on mo.id = mrrv.moduleid
WHERE mrrv.ModuleID = @a_iNewModuleID and mrrv.ResRefID = @a_iResRefID
SET @iError = @@ERROR
IF (@iError <> 0) GOTO ON_ERROR
-- Update the VOScript table to refer to the new resource
-- The Resource (Conversation/SoundSet) and Character data will both need to be updated
UPDATE vos
SET [ResourceModuleID] = @a_iNewModuleID
FROM t_VOScript vos
WHERE vos.[ResourceResRefID] = @a_iResRefID
AND vos.[ResourceModuleID] = @a_iOldModuleID
SET @iError = @@ERROR
IF (@iError <> 0) GOTO ON_ERROR
UPDATE vos
SET [CharacterModuleID] = @a_iNewModuleID
FROM t_VOScript vos
WHERE vos.[CharacterResRefID] = @a_iResRefID
AND vos.[CharacterModuleID] = @a_iOldModuleID
SET @iError = @@ERROR
IF (@iError <> 0) GOTO ON_ERROR
-- Delete the original module res ref
DELETE t_ModuleResRef
WHERE ModuleID = @a_iOldModuleID and ResRefID = @a_iResRefID
SET @iError = @@ERROR
IF (@iError <> 0) GOTO ON_ERROR
END
-- Update the properties on the module res ref
UPDATE t_ModuleResRefVersion
SET [Name] = @a_sName, [Folder] = @a_sFolder, [State] = @a_iState, [OwnerModuleID] = @a_iNewOwnerModuleID
FROM t_ModuleResRef mrr
WHERE [ID] = mrr.ScratchModuleResRefVersionID
AND [State] <> -1
AND mrr.moduleid = @a_iNewModuleID and mrr.resrefid = @a_iResRefID
SELECT @iError = @@ERROR, @iRowCount = @@ROWCOUNT
IF @iRowCount = 0 AND @iError = 0 SET @iError = -1
IF (@iError <> 0) GOTO ON_ERROR
COMMIT TRANSACTION tran_bsp_UpdateResourceProp
RETURN 0
---------------------------------------------------------------------
ON_ERROR:
---------------------------------------------------------------------
ROLLBACK TRANSACTION tran_bsp_UpdateResourceProp
RETURN @iError
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
GRANT EXECUTE ON [dbo].[bsp_UpdateResourceProperties] TO [bw_db_write]
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
------------------------------------------------------------------------
-- Stored Proc: bsp_UpdateVOScriptListing
------------------------------------------------------------------------
-- Owned By: Chris Christou
-- Created On: February 14, 2007
-- Description: Update the Player field on existing scripts, and
-- add new VO Scripts.
--
------------------------------------------------------------------------
CREATE PROCEDURE [dbo].[bsp_UpdateVOScriptListing]
AS
SET NOCOUNT ON
DECLARE @iError int
BEGIN TRANSACTION tranUpdateVOScriptListing
------------------------------------------------------------------------
-- Determine all current Conversation/Character interactions.
-- These are the currently "Live" VO Scripts.
------------------------------------------------------------------------
CREATE TABLE #tblVOScript
(
[ModuleID] int, [ResRefID] int, [ModuleResRefVersionID] int,
[Tag] varchar(64),
[CharacterModuleID] int, [CharacterResRefID] int
)
INSERT INTO #tblVOScript
EXEC @iError = [dbo].[bsp_GetConversationTagToCharacterList] NULL, 1, 0
IF (@iError <> 0) GOTO ON_ERROR
------------------------------------------------------------------------
-- Update our current VO Script Listings:
-- - Make inactive if VO Scripts are not in the newly calculated
-- 'live' VO Scripts.
-- - Make active if the VO Scripts are in this list.
--
-- Note: This also marks VO Scripts for Deleted Resources inactive.
------------------------------------------------------------------------
UPDATE vos
SET vos.[IsActive] =
CASE
WHEN liveScripts.[ModuleID] IS NULL THEN 0
ELSE 1
END
FROM t_VOScript vos
LEFT OUTER JOIN
(SELECT DISTINCT
[ModuleID], [ResRefID],
[CharacterModuleID], [CharacterResRefID]
FROM #tblVOScript) liveScripts
on vos.[ResourceModuleID] = liveScripts.[ModuleID]
and vos.[ResourceResRefID] = liveScripts.[ResRefID]
and vos.[CharacterModuleID] = liveScripts.[CharacterModuleID]
and vos.[CharacterResRefID] = liveScripts.[CharacterResRefID]
SELECT @iError = @@ERROR
IF (@iError <> 0) GOTO ON_ERROR
------------------------------------------------------------------------
-- Add new VO Scripts to the listing that appear in the "Live" list
-- for the first time.
------------------------------------------------------------------------
INSERT INTO t_VOScript
([ResourceModuleID], [ResourceResRefID],
[CharacterModuleID], [CharacterResRefID],
[PlayerScript], [IsActive])
SELECT
liveScripts.[ModuleID], liveScripts.[ResRefID],
liveScripts.[CharacterModuleID], liveScripts.[CharacterResRefID],
0, 1
FROM
(SELECT DISTINCT
[ModuleID], [ResRefID],
[CharacterModuleID], [CharacterResRefID]
FROM #tblVOScript) liveScripts
LEFT OUTER JOIN t_VOScript vos
ON vos.[ResourceModuleID] = liveScripts.[ModuleID]
AND vos.[ResourceResRefID] = liveScripts.[ResRefID]
AND vos.[CharacterModuleID] = liveScripts.[CharacterModuleID]
AND vos.[CharacterResRefID] = liveScripts.[CharacterResRefID]
WHERE vos.[ID] IS NULL
SELECT @iError = @@ERROR
IF (@iError <> 0) GOTO ON_ERROR
------------------------------------------------------------------------
-- Update the PlayerScript field on VO Script Records
------------------------------------------------------------------------
UPDATE vos
SET vos.[PlayerScript] = c.[Player]
FROM t_VOScript vos
JOIN t_ModuleResRef mr
ON vos.[CharacterModuleID] = mr.[ModuleID]
AND vos.[CharacterResRefID] = mr.[ResRefID]
JOIN t_Character c
ON mr.[CurrentModuleResRefVersionID] = c.[ModuleResRefVersionID]
AND vos.[PlayerScript] != c.[Player]
SELECT @iError = @@ERROR
IF (@iError <> 0) GOTO ON_ERROR
------------------------------------------------------------------------
-- Done.
------------------------------------------------------------------------
DROP TABLE #tblVOScript
COMMIT TRANSACTION tranUpdateVOScriptListing
SET NOCOUNT OFF
return 0
------------------------------------------------------------------------
ON_ERROR:
------------------------------------------------------------------------
ROLLBACK TRANSACTION
SET NOCOUNT OFF
return @iError
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
GRANT EXECUTE ON [dbo].[bsp_UpdateVOScriptListing] TO [bw_db_write]
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE PROCEDURE [dbo].[bsp_ValidateResRefName]
@a_iModuleID int,
@a_iResRefID int,
@a_sResType varchar(4),
@a_bUseModuleTree bit,
@a_sName varchar(32),
@a_bInValid bit OUTPUT
AS
if @a_iResRefID is null set @a_iResRefID = 0
if (@a_sResType is null or @a_sResType = '')
BEGIN
select @a_bInValid = case count(name) when 0 then 0 else 1 end
from t_moduleResRefVersion mrrv
JOIN t_ResRef rr on mrrv.resrefid = rr.id
JOIN t_ResRef rr2 on rr.ResType = rr2.ResType
AND rr2.id = @a_iResRefID
where mrrv.name = @a_sName
and mrrv.Status in ('C', 'S')
and mrrv.ResRefID <> @a_iResRefID
IF (@@ERROR <> 0) GOTO ON_ERROR
END
ELSE
BEGIN
select @a_bInValid = case count(name) when 0 then 0 else 1 end
from t_moduleResRefVersion mrrv
JOIN t_ResRef rr on mrrv.resrefid = rr.id
and rr.ResType = @a_sResType
where mrrv.name = @a_sName
and mrrv.Status in ('C', 'S')
and mrrv.ResRefID <> @a_iResRefID
IF (@@ERROR <> 0) GOTO ON_ERROR
END
return 0
---------------------------------------------------------------------
ON_ERROR:
---------------------------------------------------------------------
return @@ERROR
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
GRANT EXECUTE ON [dbo].[bsp_ValidateResRefName] TO [bw_db_read]
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE TRIGGER [trg_ModuleType_Update] ON dbo.t_ModuleType
FOR UPDATE
AS
UPDATE t_ModuleType
SET [LastModifiedOn] = GetDate(),
[LastModifiedBy] = suser_sname()
WHERE ID IN
(SELECT [ID] FROM INSERTED)
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE TRIGGER [trg_ResourceTables_Update] ON dbo.t_ResourceTables
FOR UPDATE
AS
UPDATE t_ResourceTables
SET [LastModifiedOn] = GetDate(),
[LastModifiedBy] = suser_sname()
WHERE ID IN
(SELECT [ID] FROM INSERTED)
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
------------------------------------------------------------------------
-- t_StringExportLabel UPDATE Trigger
------------------------------------------------------------------------
-- Owned By: Chris Christou
-- Created On: September 20, 2006
-- Description: Updates the "LastModified.." auditing information.
--
------------------------------------------------------------------------
CREATE TRIGGER [trg_StringExportLabel_Update] ON dbo.t_StringExportLabel
FOR UPDATE
AS
UPDATE t_StringExportLabel
SET [LastModifiedOn] = GetDate(),
[LastModifiedBy] = suser_sname()
FROM inserted
WHERE t_StringExportLabel.[ID] = inserted.[ID]
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE TRIGGER [trg_StringTable_Update] ON dbo.t_StringTable
FOR UPDATE
AS
UPDATE t_StringTable
SET [LastModifiedOn] = GetDate(),
[LastModifiedBy] = suser_sname()
WHERE ID IN
(SELECT [ID] FROM INSERTED)
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE TRIGGER [trg_StringType_Update] ON dbo.t_StringType
FOR UPDATE
AS
UPDATE t_StringType
SET [LastModifiedOn] = GetDate(),
[LastModifiedBy] = suser_sname()
WHERE ID IN
(SELECT [ID] FROM INSERTED)
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE TRIGGER [trg_StringVariant_Update] ON dbo.t_StringVariant
FOR UPDATE
AS
UPDATE t_StringVariant
SET [LastModifiedOn] = GetDate(),
[LastModifiedBy] = suser_sname()
WHERE ID IN
(SELECT [ID] FROM INSERTED)
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
------------------------------------------------------------------------
-- t_VOScriptInstanceManagement INSERT Trigger
------------------------------------------------------------------------
-- Owned By: Chris Christou
-- Created On: February 13, 2007
-- Description: Changes the Active flag to Inactive when a new Active
-- record is inserted.
------------------------------------------------------------------------
CREATE TRIGGER [trg_VOScriptInstanceManagementInsert] ON dbo.t_VOScriptInstanceManagement
FOR INSERT
AS
UPDATE vis
SET [Active] = 'I'
FROM t_VOScriptInstanceManagement vis
JOIN inserted i
ON vis.[VOScriptInstanceID] = i.[VOScriptInstanceID]
AND vis.[Active] = 'A'
AND i.[Active] = 'A'
AND vis.[ID] != i.[ID]
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE TRIGGER [trg_ResourceDefinition_Update] ON dbo.t_ResourceDefinition
FOR UPDATE
AS
UPDATE t_ResourceDefinition
SET [LastModifiedOn] = GetDate(),
[LastModifiedBy] = suser_sname()
WHERE ResType IN
(SELECT [ResType] FROM INSERTED)
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE TRIGGER [trg_ResourceTableRelationship_Update] ON dbo.t_ResourceTableRelationship
FOR UPDATE
AS
UPDATE t_ResourceTableRelationship
SET [LastModifiedOn] = GetDate(),
[LastModifiedBy] = suser_sname()
FROM inserted
WHERE t_ResourceTableRelationship.ParentResourceTableID = inserted.ParentResourceTableID
AND t_ResourceTableRelationship.ChildResourceTableID = inserted.ChildResourceTableID
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE TRIGGER [trg_String_Update] ON dbo.t_String
FOR UPDATE
AS
UPDATE t_String
SET [LastModifiedOn] = GetDate(),
[LastModifiedBy] = suser_sname()
WHERE ID IN
(SELECT [ID] FROM INSERTED)
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE TRIGGER [trg_Module_Delete] ON dbo.t_Module
FOR DELETE
AS
DELETE FROM t_ModuleAssociation
WHERE ChildModuleID in
(SELECT [ID] FROM DELETED)
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE TRIGGER [trg_Module_Update] ON dbo.t_Module
FOR UPDATE
AS
UPDATE t_Module
SET [LastModifiedOn] = GetDate(),
[LastModifiedBy] = suser_sname()
WHERE ID IN
(SELECT [ID] FROM INSERTED)
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE TRIGGER [trg_StringSound_Update] ON dbo.t_StringSound
FOR UPDATE
AS
UPDATE t_StringSound
SET [LastModifiedOn] = GetDate(),
[LastModifiedBy] = suser_sname()
WHERE ID IN
(SELECT [ID] FROM INSERTED)
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE TRIGGER [trg_ModuleAssociation_Update] ON dbo.t_ModuleAssociation
FOR UPDATE
AS
UPDATE t_ModuleAssociation
SET [LastModifiedOn] = GetDate(),
[LastModifiedBy] = suser_sname()
FROM inserted
WHERE t_ModuleAssociation.ParentModuleID = inserted.ParentModuleID
AND t_ModuleAssociation.ChildModuleID = inserted.ChildModuleID
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE TRIGGER [trg_ModuleResRef_Update] ON dbo.t_ModuleResRef
FOR UPDATE
AS
UPDATE t_ModuleResRef
SET [LastModifiedOn] = GetDate(),
[LastModifiedBy] = suser_sname()
FROM inserted
WHERE t_ModuleResRef.ModuleID = inserted.ModuleID
AND t_ModuleResRef.ResRefID = inserted.ResRefID
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
-- creating the new trigger to populate the references table on any change to t_script
CREATE TRIGGER [dbo].[trg_Script_Update] ON dbo.t_Script
AFTER UPDATE, INSERT
AS
BEGIN
-- clean up any old values
DELETE FROM t_Script_Reference
WHERE [ModuleResRefVersionID] IN
( SELECT [ModuleResRefVersionID] FROM deleted )
-- insert any new calues
DECLARE CUR_TODO CURSOR READ_ONLY FOR
SELECT [ModuleResRefVersionID] FROM inserted
DECLARE @MRRVID int
OPEN CUR_TODO
FETCH NEXT FROM CUR_TODO INTO @MRRVID
WHILE (@@fetch_status <> -1)
BEGIN
IF (@@fetch_status <> -2)
BEGIN
INSERT INTO t_Script_Reference
( [ModuleResRefVersionID], [ReferencedResRefID] )
SELECT DISTINCT @MRRVID, [ResRefID]
FROM dbo.udf_ParseIncludesFromScript(@MRRVID)
WHERE [ResRefID] IS NOT NULL
END
FETCH NEXT FROM CUR_TODO INTO @MRRVID
END
CLOSE CUR_TODO
DEALLOCATE CUR_TODO
END
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE TRIGGER [trg_StringLanguage_Update] ON dbo.t_StringLanguage
FOR UPDATE
AS
UPDATE t_StringLanguage
SET [LastModifiedOn] = GetDate(),
[LastModifiedBy] = suser_sname()
WHERE ID IN
(SELECT [ID] FROM INSERTED)
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE TRIGGER [trg_StringLanguageVariant_Update] ON dbo.t_StringLanguageVariant
FOR UPDATE
AS
UPDATE t_StringLanguageVariant
SET [LastModifiedOn] = GetDate(),
[LastModifiedBy] = suser_sname()
WHERE ID IN
(SELECT [ID] FROM INSERTED)
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
------------------------------------------------------------------------
-- Alter trg_StringText_Update to incorporate the ReRecord flag
------------------------------------------------------------------------
CREATE TRIGGER [trg_StringText_Update] ON dbo.t_StringText
FOR UPDATE
AS
------------------------------------------------------------------------
-- Always update the record auditing information, and
-- Always update the Word Count
-- Note: record auditing is not the same as string auditing
------------------------------------------------------------------------
UPDATE t_StringText
SET [LastModifiedOn] = GetDate(),
[LastModifiedBy] = suser_sname(),
[WordCount] = dbo.udf_WordCount( t_StringText.[Text] )
FROM inserted
WHERE t_StringText.StringID = inserted.StringID
AND t_StringText.ModuleResRefVersionID = inserted.ModuleResRefVersionID
AND t_StringText.StringLanguageVariantID = inserted.StringLanguageVariantID
------------------------------------------------------------------------
-- Update the String Auditing for Minor Edits, only when strings
-- are not being copied.
------------------------------------------------------------------------
UPDATE st
SET st.[LastMinorUpdateOn] = st.[LastModifiedOn],
st.[LastMinorUpdateBy] = st.[LastModifiedBy]
FROM t_StringText st
JOIN inserted
ON st.[StringID] = inserted.[StringID]
AND st.[ModuleResRefVersionID] = inserted.[ModuleResRefVersionID]
AND st.[StringLanguageVariantID] = inserted.[StringLanguageVariantID]
AND inserted.[StringIsCopy] = 0
------------------------------------------------------------------------
-- Update the String Auditing for Major Edits where applicable,
-- only when strings are not being copied.
------------------------------------------------------------------------
UPDATE st
SET st.[LastMajorUpdateOn] = st.[LastModifiedOn],
st.[LastMajorUpdateBy] = st.[LastModifiedBy]
FROM t_StringText st
JOIN inserted
ON st.[StringID] = inserted.[StringID]
AND st.[ModuleResRefVersionID] = inserted.[ModuleResRefVersionID]
AND st.[StringLanguageVariantID] = inserted.[StringLanguageVariantID]
AND inserted.[StringIsCopy] = 0
AND st.[MinorUpdateCount] = 0
------------------------------------------------------------------------
-- Update the VORequestOn stamp where applicable,
-- only when strings are not being copied.
------------------------------------------------------------------------
UPDATE st
SET st.[VORequestOn] = st.[LastModifiedOn],
st.[ReRecord] = 0
FROM t_StringText st
JOIN inserted
ON st.[StringID] = inserted.[StringID]
AND st.[ModuleResRefVersionID] = inserted.[ModuleResRefVersionID]
AND st.[StringLanguageVariantID] = inserted.[StringLanguageVariantID]
AND inserted.[StringIsCopy] = 0
AND st.[ReRecord] = 1
------------------------------------------------------------------------
-- Flip off the "String Is a Copy" flag where applicable
------------------------------------------------------------------------
UPDATE st
SET st.[StringIsCopy] = 0
FROM t_StringText st
JOIN inserted
ON st.[StringID] = inserted.[StringID]
AND st.[ModuleResRefVersionID] = inserted.[ModuleResRefVersionID]
AND st.[StringLanguageVariantID] = inserted.[StringLanguageVariantID]
AND st.[StringIsCopy] = 1
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE TRIGGER [trg_StringText_Insert] ON dbo.t_StringText
FOR INSERT
AS
UPDATE t_StringText
SET [WordCount] = dbo.udf_WordCount( t_StringText.[Text] )
FROM inserted
WHERE t_StringText.StringID = inserted.StringID
AND t_StringText.ModuleResRefVersionID = inserted.ModuleResRefVersionID
AND t_StringText.StringLanguageVariantID = inserted.StringLanguageVariantID
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
------------------------------------------------------------------------
-- t_VOSessionInstanceVersion INSERT Trigger
------------------------------------------------------------------------
-- Owned By: Chris Christou
-- Created On: February 13, 2007
-- Description: Changes the Active flag to Inactive when a new Active
-- record is inserted.
------------------------------------------------------------------------
CREATE TRIGGER [trg_VOSessionInstanceVersionInsert] ON dbo.t_VOSessionInstanceVersion
FOR INSERT
AS
UPDATE vis
SET [Active] = 'I'
FROM t_VOSessionInstanceVersion vis
JOIN inserted i
ON vis.[VOSessionInstanceID] = i.[VOSessionInstanceID]
AND vis.[Active] = 'A'
AND i.[Active] = 'A'
AND vis.[ID] != i.[ID]
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
------------------------------------------------------------------------
-- t_VOSessionVersion INSERT Trigger
------------------------------------------------------------------------
-- Owned By: Chris Mihalick
-- Created On: May 15, 2008
-- Description: Changes the Active flag to Inactive when a new Active
-- record is inserted.
------------------------------------------------------------------------
CREATE TRIGGER [trg_VOSessionVersionInsert] ON dbo.t_VOSessionVersion
FOR INSERT
AS
UPDATE vis
SET [Active] = 'I'
FROM t_VOSessionVersion vis
JOIN inserted i
ON vis.[VOSessionID] = i.[VOSessionID]
AND vis.[Active] = 'A'
AND i.[Active] = 'A'
AND vis.[ID] != i.[ID]
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
------------------------------------------------------------------------
-- t_VOScriptInstance INSERT Trigger
------------------------------------------------------------------------
-- Owned By: Chris Christou
-- Created On: February 13, 2007
-- Description: Changes the Active flag to Inactive when a new Active
-- record is inserted.
------------------------------------------------------------------------
CREATE TRIGGER [trg_VOScriptInstanceInsert] ON dbo.t_VOScriptInstance
FOR INSERT
AS
UPDATE vis
SET [Active] = 'I'
FROM t_VOScriptInstance vis
JOIN inserted i
ON vis.[VOScriptID] = i.[VOScriptID]
AND vis.[StringLanguageID] = i.[StringLanguageID]
AND vis.[Active] = 'A'
AND i.[Active] = 'A'
AND vis.[ID] != i.[ID]
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
------------------------------------------------------------------------
-- t_VOScriptInstanceString INSERT Trigger
------------------------------------------------------------------------
-- Owned By: Chris Christou
-- Created On: February 13, 2007
-- Description: Changes the Active flag to Inactive when a new Active
-- record is inserted.
------------------------------------------------------------------------
CREATE TRIGGER [trg_VOScriptInstanceStringInsert] ON dbo.t_VOScriptInstanceString
FOR INSERT
AS
UPDATE vosis
SET [Active] = 'I'
FROM t_VOScriptInstanceString vosis
JOIN inserted i
ON vosis.[StringID] = i.[StringID]
AND vosis.[Active] = 'A'
AND i.[Active] = 'A'
AND vosis.[ID] = i.[PreviousVOScriptInstanceStringID]
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
------------------------------------------------------------------------
-- t_VOScriptInstanceString UPDATE Trigger
------------------------------------------------------------------------
-- Owned By: Chris Christou
-- Created On: February 13, 2007
-- Description: Updates the "Last Modified" audit information
--
------------------------------------------------------------------------
CREATE TRIGGER [dbo].[trg_VOScriptInstanceStringUpdate] ON [dbo].[t_VOScriptInstanceString]
FOR UPDATE
AS
UPDATE vosis
SET [LastModifiedOn] = GetDate(),
[LastModifiedBy] = suser_sname()
FROM t_VOScriptInstanceString vosis
JOIN inserted i
ON vosis.[ID] = i.[ID]
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
------------------------------------------------------------------------
-- t_VOScriptInstanceStringStatus INSERT Trigger
------------------------------------------------------------------------
-- Owned By: Chris Christou
-- Created On: February 13, 2007
-- Description: Changes the old Active Flag to Inactive when
-- another record has become Active
--
------------------------------------------------------------------------
CREATE TRIGGER [trg_VOScriptInstanceStringStatus_Insert] ON dbo.t_VOScriptInstanceStringStatus
FOR INSERT
AS
UPDATE iss
SET [Active] = 'I'
FROM t_VOScriptInstanceStringStatus iss
JOIN inserted i
ON iss.[VOScriptInstanceStringID] = i.[VOScriptInstanceStringID]
AND iss.[Active] = 'A'
AND i.[Active] = 'A'
AND iss.[ID] != i.[ID]
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO