Files
sql-scripts/CRS dev - create needed structure in dbo.sql
Schork Thierry (Galenica) 5a4f2784bb sync
2026-01-13 08:14:13 +01:00

672 lines
28 KiB
Transact-SQL

-- Created by GitHub Copilot in SSMS - review carefully before executing
DECLARE @tpl NVARCHAR(MAX)= '
IF EXISTS (SELECT 1 FROM sys.tables WHERE name = ''Entry'' AND schema_id = SCHEMA_ID(''@dbo@''))
DROP TABLE @dbo@.Entry;
IF NOT EXISTS (SELECT 1 FROM sys.tables WHERE name = ''Entry'' AND schema_id = SCHEMA_ID(''@dbo@''))
CREATE TABLE @dbo@.Entry (
Entry_ID int NOT NULL,
ET_accounting_period int NOT NULL,
ET_document_header int NOT NULL,
ET_sales_tax_code int NULL,
ET_currency int NOT NULL,
ET_entry_type int NOT NULL,
ET_account int NOT NULL,
ET_predefined_entry int NULL,
ET_entry_address int NULL,
ET_batch_run int NULL,
ET_value_date datetime NOT NULL,
ET_original_date datetime NOT NULL,
ET_input_date datetime NOT NULL,
ET_debit_base_amount decimal(14,2) NULL,
ET_credit_base_amount decimal(14,2) NULL,
ET_debit_currency_amount decimal(14,2) NULL,
ET_credit_currency_amount decimal(14,2) NULL,
ET_exchange_rate float NOT NULL DEFAULT (1),
ET_debit_quantity decimal(11,4) NULL,
ET_credit_quantity decimal(11,4) NULL,
ET_extourne_number int NULL,
ET_official_number int NULL,
ET_text varchar(60) NULL,
ET_hide_code bit NOT NULL DEFAULT (0),
ET_tax_reclaiming_rate decimal(5,2) NULL,
ET_VAT_identifier varchar(60) NULL,
ET_TS timestamp NOT NULL,
ET_tax_base_currency_amount decimal(14,2) NULL,
ET_interco_type smallint NULL,
ET_VGUID varchar(36) NULL DEFAULT (newid()),
ET_master_ID varchar(60) NULL,
ET_reconciliation_status smallint NULL,
ET_reconciliation_base_amount decimal(14,2) NULL,
ET_reconciliation_curr_amount decimal(14,2) NULL,
ET_bmc_user_profile int NULL,
ET_APS_TS datetime NULL DEFAULT (getdate()),
ET_rowguid uniqueidentifier NOT NULL DEFAULT (newsequentialid()),
ET_pharmacy_code char(6) NOT NULL DEFAULT (''@phcode@''),
CONSTRAINT PK_Entry PRIMARY KEY NONCLUSTERED (Entry_ID),
CONSTRAINT CK_ET_interco_type CHECK ([ET_interco_type] >= 1 and [ET_interco_type] <= 3),
CONSTRAINT CK_ET_pharmacy_code CHECK ([ET_pharmacy_code]=''@phcode@'')
);
IF EXISTS (SELECT 1 FROM sys.tables WHERE name = ''Entry_reconciliation'' AND schema_id = SCHEMA_ID(''@dbo@''))
DROP TABLE @dbo@.Entry_reconciliation;
IF NOT EXISTS (SELECT 1 FROM sys.tables WHERE name = ''Entry_reconciliation'' AND schema_id = SCHEMA_ID(''@dbo@''))
CREATE TABLE @dbo@.Entry_reconciliation (
Entry_reconciliation_ID int NOT NULL,
ETR_entry int NOT NULL,
ETR_linked_entry int NOT NULL,
ETR_base_amount decimal(14,2) NULL,
ETR_currency_amount decimal(14,2) NULL,
ETR_debit_base_amount decimal(14,2) NULL,
ETR_credit_base_amount decimal(14,2) NULL,
ETR_debit_currency_amount decimal(14,2) NULL,
ETR_credit_currency_amount decimal(14,2) NULL,
ETR_value_date datetime NULL,
ETR_remark varchar(255) NULL,
ETR_TS timestamp NOT NULL,
ETR_VGUID varchar(36) NULL DEFAULT (newid()),
ETR_master_ID varchar(60) NULL,
ETR_rowguid uniqueidentifier NOT NULL DEFAULT (newsequentialid()),
ETR_pharmacy_code char(6) NOT NULL DEFAULT (''@phcode@''),
CONSTRAINT PK_Entry_reconciliation PRIMARY KEY NONCLUSTERED (Entry_reconciliation_ID),
CONSTRAINT CK_ETR_pharmacy_code CHECK ([ETR_pharmacy_code]=''@phcode@'')
);
IF EXISTS (SELECT 1 FROM sys.tables WHERE name = ''Financial_relation_account'' AND schema_id = SCHEMA_ID(''@dbo@''))
DROP TABLE @dbo@.Financial_relation_account;
IF NOT EXISTS (SELECT 1 FROM sys.tables WHERE name = ''Financial_relation_account'' AND schema_id = SCHEMA_ID(''@dbo@''))
CREATE TABLE @dbo@.Financial_relation_account (
Financial_relation_account_ID int NOT NULL,
FNRA_subsidiary int NOT NULL,
FNRA_BVR_member int NULL,
FNRA_source_financial_relation int NULL,
FNRA_address int NOT NULL,
FNRA_beneficiary_address int NULL,
FNRA_document_predefined_entry int NULL,
FNRA_payment_predefined_entry int NULL,
FNRA_financial_institution int NOT NULL,
FNRA_account int NULL,
FNRA_supplier_DTA_structure uniqueidentifier NULL,
FNRA_payroll_DTA_structure uniqueidentifier NULL,
FNRA_sequence smallint NULL,
FNRA_account_number varchar(30) NULL,
FNRA_text varchar(60) NULL,
FNRA_house_bank bit NOT NULL DEFAULT ((0)),
FNRA_by_default bit NOT NULL DEFAULT ((0)),
FNRA_by_default_payroll bit NOT NULL DEFAULT ((0)),
FNRA_cust_ident varchar(15) NULL,
FNRA_doc_number_pos smallint NOT NULL DEFAULT ((0)),
FNRA_doc_number_length smallint NULL,
FNRA_value_date_pos smallint NOT NULL DEFAULT ((0)),
FNRA_value_date_length smallint NULL,
FNRA_value_date_format varchar(15) NULL,
FNRA_DTA_identifier varchar(15) NULL,
FNRA_DTA_payroll_identifier varchar(15) NULL,
FNRA_IBAN_identifier varchar(60) NULL,
FNRA_bank_fees_settlement smallint NULL,
FNRA_active bit NOT NULL DEFAULT ((1)),
FNRA_EAS_process bit NOT NULL DEFAULT ((0)),
FNRA_VGUID varchar(36) NULL DEFAULT (newid()),
FNRA_master_ID varchar(60) NULL,
FNRA_TS timestamp NOT NULL,
FNRA_QR_IBAN_identifier varchar(60) NULL,
FNRA_rowguid uniqueidentifier NOT NULL DEFAULT (newsequentialid()),
FNRA_pharmacy_code char(6) NOT NULL DEFAULT (''@phcode@''),
CONSTRAINT PK_Financial_relation_account PRIMARY KEY NONCLUSTERED (Financial_relation_account_ID),
CONSTRAINT CK_FNRA_bank_fees_settlement CHECK ([FNRA_bank_fees_settlement]>=(1) AND [FNRA_bank_fees_settlement]<=(3)),
CONSTRAINT CK_FNRA_pharmacy_code CHECK ([FNRA_pharmacy_code]=''@phcode@'')
);
IF EXISTS (SELECT 1 FROM sys.tables WHERE name = ''Address'' AND schema_id = SCHEMA_ID(''@dbo@''))
DROP TABLE @dbo@.Address;
IF NOT EXISTS (SELECT 1 FROM sys.tables WHERE name = ''Address'' AND schema_id = SCHEMA_ID(''@dbo@''))
CREATE TABLE @dbo@.Address (
Address_ID int NOT NULL,
AD_title int NULL,
AD_language int NOT NULL,
AD_mailing_language int NULL,
AD_country int NOT NULL,
AD_bmc_user_profile int NULL,
AD_name varchar(60) NULL,
AD_name_supplement varchar(255) NULL,
AD_first_name varchar(30) NULL,
AD_middle_name varchar(4) NULL,
AD_last_name varchar(30) NULL,
AD_address_1 varchar(60) NULL,
AD_address_2 varchar(60) NULL,
AD_address_3 varchar(60) NULL,
AD_zip_code varchar(15) NULL,
AD_city varchar(30) NULL,
AD_state varchar(15) NULL,
AD_postal_routing_address varchar(60) NULL,
AD_area varchar(15) NULL,
AD_activity varchar(255) NULL,
AD_EDI_identifier varchar(15) NULL,
AD_VAT_identifier varchar(60) NULL,
AD_swisskey varchar(30) NULL,
AD_EU_identity_code varchar(15) NULL,
AD_sex smallint NOT NULL DEFAULT (3),
AD_date_of_birth datetime NULL,
AD_mailing bit NOT NULL DEFAULT (0),
AD_advertising bit NOT NULL DEFAULT (0),
AD_status smallint NOT NULL DEFAULT (1),
AD_remark varchar(255) NULL,
AD_memo nvarchar(max) NULL,
AD_concordat varchar(15) NULL,
AD_place_of_origin varchar(30) NULL,
AD_place_of_birth varchar(30) NULL,
AD_social_security_number varchar(30) NULL,
AD_qualification varchar(255) NULL,
AD_creation_date datetime NULL,
AD_modified bit NOT NULL DEFAULT (0),
AD_TS timestamp NOT NULL,
AD_VGUID varchar(36) NULL DEFAULT (newid()),
AD_master_ID varchar(60) NULL,
AD_criteria_schema_header uniqueidentifier NULL,
AD_end_date_validity datetime NULL,
AD_customs_identifier varchar(15) NULL,
AD_enterprise_identifier varchar(30) NULL,
AD_geo_address varchar(60) NULL,
AD_geo_zip_code varchar(15) NULL,
AD_geo_city varchar(60) NULL,
AD_geo_state varchar(15) NULL,
AD_geo_country int NULL,
AD_geo_postal_routing_address varchar(60) NULL,
AD_rowguid uniqueidentifier NOT NULL DEFAULT (newsequentialid()),
AD_pharmacy_code char(6) NOT NULL DEFAULT (''@phcode@''),
AD_origin tinyint NOT NULL DEFAULT ((4)),
AD_omnichannel_UUID char(64) NULL,
AD_address_supplement varchar(60) NULL,
CONSTRAINT PK_Address PRIMARY KEY NONCLUSTERED (Address_ID),
CONSTRAINT CK_AD_origin CHECK ([AD_origin]=(5) OR [AD_origin]=(4) OR [AD_origin]=(3) OR [AD_origin]=(2) OR [AD_origin]=(1)),
CONSTRAINT CK_AD_pharmacy_code CHECK ([AD_pharmacy_code]=''@phcode@''),
CONSTRAINT CK_AD_sex CHECK ([AD_sex] >= 1 and [AD_sex] <= 4),
CONSTRAINT CK_AD_status CHECK ([AD_status] = 99 or [AD_status] = 5 or [AD_status] = 4 or [AD_status] = 3 or [AD_status] = 2 or [AD_status] = 1)
);
IF EXISTS (SELECT 1 FROM sys.tables WHERE name = ''Address_Criteria'' AND schema_id = SCHEMA_ID(''@dbo@''))
DROP TABLE @dbo@.Address_Criteria;
IF NOT EXISTS (SELECT 1 FROM sys.tables WHERE name = ''Address_Criteria'' AND schema_id = SCHEMA_ID(''@dbo@''))
CREATE TABLE @dbo@.Address_Criteria (
Address_criteria_ID int NOT NULL,
ADCR_subsidiary int NULL,
ADCR_address int NOT NULL,
ADCR_criteria int NOT NULL,
ADCR_criteria_weight smallint NULL,
ADCR_remark nvarchar(max) NULL,
ADCR_update_date datetime NULL,
ADCR_active bit NOT NULL DEFAULT (1),
ADCR_TS timestamp NOT NULL,
ADCR_valid_from datetime NULL,
ADCR_valid_until datetime NULL,
ADCR_VGUID varchar(36) NULL DEFAULT (newid()),
ADCR_master_ID varchar(60) NULL,
ADCR_rowguid uniqueidentifier NOT NULL DEFAULT (newsequentialid()),
ADCR_pharmacy_code char(6) NOT NULL DEFAULT (''@phcode@''),
CONSTRAINT PK_Address_criteria PRIMARY KEY NONCLUSTERED (Address_criteria_ID),
CONSTRAINT CK_ADCR_pharmacy_code CHECK ([ADCR_pharmacy_code]=''@phcode@'')
);
IF EXISTS (SELECT 1 FROM sys.tables WHERE name = ''Address_key'' AND schema_id = SCHEMA_ID(''@dbo@''))
DROP TABLE @dbo@.Address_key;
IF NOT EXISTS (SELECT 1 FROM sys.tables WHERE name = ''Address_key'' AND schema_id = SCHEMA_ID(''@dbo@''))
CREATE TABLE @dbo@.Address_key (
Address_key_ID int NOT NULL,
ADK_subsidiary int NOT NULL,
ADK_address int NOT NULL,
ADK_key varchar(15) NULL,
ADK_type smallint NOT NULL DEFAULT (2),
ADK_remark varchar(255) NULL,
ADK_user_ID varchar(18) NULL,
ADK_APS_TS datetime NOT NULL DEFAULT (getdate()),
ADK_VGUID varchar(36) NULL DEFAULT (newid()),
ADK_master_ID varchar(60) NULL,
ADK_TS timestamp NOT NULL,
ADK_rowguid uniqueidentifier NOT NULL DEFAULT (newsequentialid()),
ADK_pharmacy_code char(6) NOT NULL DEFAULT (''@phcode@''),
CONSTRAINT PK_Address_key PRIMARY KEY NONCLUSTERED (Address_key_ID),
CONSTRAINT CK_ADK_pharmacy_code CHECK ([ADK_pharmacy_code]=''@phcode@'')
);
IF EXISTS (SELECT 1 FROM sys.tables WHERE name = ''Document_error'' AND schema_id = SCHEMA_ID(''@dbo@''))
DROP TABLE @dbo@.Document_error;
IF NOT EXISTS (SELECT 1 FROM sys.tables WHERE name = ''Document_error'' AND schema_id = SCHEMA_ID(''@dbo@''))
CREATE TABLE @dbo@.Document_error (
Document_error_GUID uniqueidentifier NOT NULL,
DE_document_header int NULL,
DE_document_line int NULL,
DE_reason int NOT NULL,
DE_remedy int NULL,
DE_bmc_user_profile int NOT NULL,
DE_creation_date datetime NOT NULL DEFAULT (getdate()),
DE_update_date datetime NULL,
DE_proceed bit NOT NULL DEFAULT ((0)),
DE_remark varchar(8000) NULL,
DE_APS_TS datetime NOT NULL DEFAULT (getdate()),
DE_VGUID varchar(36) NULL DEFAULT (newid()),
DE_master_ID varchar(60) NULL,
DE_TS timestamp NOT NULL,
DE_delivery_note_header int NULL,
DE_xml_remark xml NULL,
DE_xml_data xml NULL,
DE_triaFact_update_date datetime NULL,
DE_pharmacy_code char(6) NOT NULL DEFAULT (''@phcode@''),
CONSTRAINT PK_Document_error PRIMARY KEY NONCLUSTERED (Document_error_GUID),
CONSTRAINT CK_DE_pharmacy_code CHECK ([DE_pharmacy_code]=''@phcode@'')
);
IF EXISTS (SELECT 1 FROM sys.tables WHERE name = ''Accounting_turnover_agg'' AND schema_id = SCHEMA_ID(''@dbo@''))
DROP TABLE @dbo@.Accounting_turnover_agg;
IF NOT EXISTS (SELECT 1 FROM sys.tables WHERE name = ''Accounting_turnover_agg'' AND schema_id = SCHEMA_ID(''@dbo@''))
CREATE TABLE @dbo@.Accounting_turnover_agg (
Accounting_turnover_agg_ID int IDENTITY(1,1) NOT NULL,
ATA_organizational_unit int NOT NULL,
ATA_type tinyint NOT NULL,
ATA_debit_credit tinyint NOT NULL,
ATA_sub_type tinyint NOT NULL,
ATA_expense_item_key varchar(30) NULL,
ATA_nature tinyint NOT NULL,
ATA_sub_nature varchar(15) NULL,
ATA_tax_code varchar(4) NULL,
ATA_amount decimal(14,2) NOT NULL,
ATA_amount_VAT decimal(14,2) NOT NULL,
ATA_tax_amount decimal(14,2) NOT NULL,
ATA_accounting_value_date datetime2(7) NOT NULL,
ATA_load_date datetime2(7) NOT NULL,
ATA_tax_rate decimal(3,2) NULL,
ATA_pharmacy_code char(6) NOT NULL DEFAULT (''@phcode@''),
ATA_doc_number varchar(15) NULL,
CONSTRAINT PK_Accounting_turnover_agg PRIMARY KEY CLUSTERED (Accounting_turnover_agg_ID),
CONSTRAINT CK_ATA_pharmacy_code CHECK ([ATA_pharmacy_code]=''@phcode@'')
);
IF EXISTS (SELECT 1 FROM sys.tables WHERE name = ''Account'' AND schema_id = SCHEMA_ID(''@dbo@''))
DROP TABLE @dbo@.Account;
IF NOT EXISTS (SELECT 1 FROM sys.tables WHERE name = ''Account'' AND schema_id = SCHEMA_ID(''@dbo@''))
CREATE TABLE @dbo@.Account (
Account_ID int NOT NULL,
AC_sales_tax_code int NULL,
AC_default_currency int NOT NULL,
AC_column_swap_account_number int NULL,
AC_print_style int NULL,
AC_account_interest int NULL,
AC_transitory_account int NULL,
AC_type smallint NOT NULL DEFAULT ((1)),
AC_can_be_debited bit NOT NULL DEFAULT ((1)),
AC_can_be_credited bit NOT NULL DEFAULT ((1)),
AC_availability_start_date datetime NOT NULL,
AC_availability_end_date datetime NULL,
AC_liable_to_tax smallint NOT NULL DEFAULT ((1)),
AC_credit_limit_alert decimal NULL,
AC_credit_limit_blocking decimal NULL,
AC_credit_limit_action smallint NULL,
AC_currency_revaluation bit NOT NULL DEFAULT ((0)),
AC_foreign_currency_allowed bit NOT NULL DEFAULT ((0)),
AC_multicurrency bit NOT NULL DEFAULT ((0)),
AC_replacement_account int NULL,
AC_balance_sheet_column_swap bit NOT NULL DEFAULT ((0)),
AC_CA_breakdown_required bit NOT NULL DEFAULT ((0)),
AC_PCT_required bit NOT NULL DEFAULT ((0)),
AC_PJE_breakdown_required bit NOT NULL DEFAULT ((0)),
AC_cash_and_bank_account_code smallint NULL DEFAULT ((1)),
AC_number_of_decimals smallint NULL,
AC_tax_reclaiming_rate decimal NULL,
AC_def_currency_rate_type smallint NOT NULL DEFAULT ((1)),
AC_remark varchar(255) NULL,
AC_grouping_level_1 smallint NULL DEFAULT ((1)),
AC_grouping_level_2 smallint NULL DEFAULT ((1)),
AC_reconciliation bit NOT NULL DEFAULT ((1)),
AC_depreciation smallint NOT NULL DEFAULT ((2)),
AC_TS timestamp NOT NULL,
AC_VGUID varchar(36) NULL DEFAULT (newid()),
AC_master_ID varchar(60) NULL,
AC_rowguid uniqueidentifier NOT NULL DEFAULT (newsequentialid()),
AC_pharmacy_code char(6) NOT NULL DEFAULT (''@phcode@''),
CONSTRAINT PK_Account PRIMARY KEY NONCLUSTERED (Account_ID),
CONSTRAINT CK_Account_pharmacy_code CHECK ([AC_pharmacy_code]=''@phcode@'')
);
IF EXISTS (SELECT 1 FROM sys.tables WHERE name = ''Account_key'' AND schema_id = SCHEMA_ID(''@dbo@''))
DROP TABLE @dbo@.Account_key;
IF NOT EXISTS (SELECT 1 FROM sys.tables WHERE name = ''Account_key'' AND schema_id = SCHEMA_ID(''@dbo@''))
CREATE TABLE @dbo@.Account_key (
Account_key_ID int NOT NULL,
ACK_accounting_plan int NOT NULL,
ACK_fiscal_year int NOT NULL,
ACK_account int NOT NULL,
ACK_key varchar(30) NULL,
ACK_type smallint NOT NULL,
ACK_remark varchar(255) NULL,
ACK_TS timestamp NOT NULL,
ACK_VGUID varchar(36) NULL DEFAULT (newid()),
ACK_master_ID varchar(60) NULL,
ACK_rowguid uniqueidentifier NOT NULL DEFAULT (newsequentialid()),
ACK_pharmacy_code char(6) NOT NULL DEFAULT (''@phcode@''),
CONSTRAINT PK_Account_key PRIMARY KEY NONCLUSTERED (Account_key_ID),
CONSTRAINT CK_Account_key_pharmacy_code CHECK ([ACK_pharmacy_code]=''@phcode@'')
);
IF EXISTS (SELECT 1 FROM sys.tables WHERE name = ''Account_link'' AND schema_id = SCHEMA_ID(''@dbo@''))
DROP TABLE @dbo@.Account_link;
IF NOT EXISTS (SELECT 1 FROM sys.tables WHERE name = ''Account_link'' AND schema_id = SCHEMA_ID(''@dbo@''))
CREATE TABLE @dbo@.Account_link (
Account_link_ID int NOT NULL,
ACL_subsidiary int NOT NULL,
ACL_address int NULL,
ACL_account int NOT NULL,
ACL_type smallint NOT NULL,
ACL_by_default bit NOT NULL DEFAULT (0),
ACL_remark varchar(255) NULL,
ACL_TS timestamp NOT NULL,
ACL_VGUID varchar(36) NULL DEFAULT (newid()),
ACL_master_ID varchar(60) NULL,
ACL_rowguid uniqueidentifier NOT NULL DEFAULT (newsequentialid()),
ACL_pharmacy_code char(6) NOT NULL DEFAULT (''@phcode@''),
CONSTRAINT PK_Account_link PRIMARY KEY NONCLUSTERED (Account_link_ID),
CONSTRAINT CK_Account_link_pharmacy_code CHECK ([ACL_pharmacy_code]=''@phcode@'')
);
IF EXISTS (SELECT 1 FROM sys.tables WHERE name = ''Account_text'' AND schema_id = SCHEMA_ID(''@dbo@''))
DROP TABLE @dbo@.Account_text;
IF NOT EXISTS (SELECT 1 FROM sys.tables WHERE name = ''Account_text'' AND schema_id = SCHEMA_ID(''@dbo@''))
CREATE TABLE @dbo@.Account_text (
Account_text_ID int NOT NULL,
ACTX_account int NOT NULL,
ACTX_fiscal_year int NOT NULL,
ACTX_language int NOT NULL,
ACTX_usage_text varchar(30) NULL,
ACTX_text varchar(255) NULL,
ACTX_TS timestamp NOT NULL,
ACTX_VGUID varchar(36) NULL DEFAULT (newid()),
ACTX_master_ID varchar(60) NULL,
ACTX_instructions varchar(8000) NULL,
ACTX_rowguid uniqueidentifier NOT NULL DEFAULT (newsequentialid()),
ACTX_pharmacy_code char(6) NOT NULL DEFAULT (''@phcode@''),
CONSTRAINT PK_Account_text PRIMARY KEY NONCLUSTERED (Account_text_ID),
CONSTRAINT CK_Account_text_pharmacy_code CHECK ([ACTX_pharmacy_code]=''@phcode@'')
);
IF EXISTS (SELECT 1 FROM sys.tables WHERE name = ''Batch_run'' AND schema_id = SCHEMA_ID(''@dbo@''))
DROP TABLE @dbo@.Batch_run;
IF NOT EXISTS (SELECT 1 FROM sys.tables WHERE name = ''Batch_run'' AND schema_id = SCHEMA_ID(''@dbo@''))
CREATE TABLE @dbo@.Batch_run (
Batch_run_ID int NOT NULL,
BR_subsidiary int NOT NULL,
BR_batch_type int NOT NULL,
BR_bmc_user_profile int NULL,
BR_batch_number varchar(15) NOT NULL,
BR_value_date datetime NULL,
BR_remark varchar(255) NULL,
BR_text varchar(60) NULL,
BR_status smallint NOT NULL DEFAULT (1),
BR_TS timestamp NOT NULL,
BR_VGUID varchar(36) NULL DEFAULT (newid()),
BR_master_ID varchar(60) NULL,
BR_parameters varchar(max) NULL,
BR_rowguid uniqueidentifier NOT NULL DEFAULT (newsequentialid()),
BR_pharmacy_code char(6) NOT NULL DEFAULT (''@phcode@''),
CONSTRAINT PK_Batch_run PRIMARY KEY NONCLUSTERED (Batch_run_ID),
CONSTRAINT CK_Batch_run_pharmacy_code CHECK ([BR_pharmacy_code]=''@phcode@'')
);
IF EXISTS (SELECT 1 FROM sys.tables WHERE name = ''BVR_member'' AND schema_id = SCHEMA_ID(''@dbo@''))
DROP TABLE @dbo@.BVR_member;
IF NOT EXISTS (SELECT 1 FROM sys.tables WHERE name = ''BVR_member'' AND schema_id = SCHEMA_ID(''@dbo@''))
CREATE TABLE @dbo@.BVR_member (
BVR_member_ID int NOT NULL,
BVRM_member_number varchar(15) NULL,
BVRM_member_account varchar(15) NULL,
BVRM_bank smallint NOT NULL DEFAULT (1),
BVRM_cust_ident_pos smallint NOT NULL DEFAULT (0),
BVRM_cust_ident_length smallint NULL,
BVRM_TS timestamp NOT NULL,
BVRM_VGUID varchar(36) NULL DEFAULT (newid()),
BVRM_master_ID varchar(60) NULL,
BVR_rowguid uniqueidentifier NOT NULL DEFAULT (newsequentialid()),
BVRM_pharmacy_code char(6) NOT NULL DEFAULT (''@phcode@''),
CONSTRAINT PK_BVR_member PRIMARY KEY NONCLUSTERED (BVR_member_ID),
CONSTRAINT CK_BVR_member_pharmacy_code CHECK ([BVRM_pharmacy_code]=''@phcode@'')
);
IF EXISTS (SELECT 1 FROM sys.tables WHERE name = ''CRS_batch_run'' AND schema_id = SCHEMA_ID(''@dbo@''))
DROP TABLE @dbo@.CRS_batch_run;
IF NOT EXISTS (SELECT 1 FROM sys.tables WHERE name = ''CRS_batch_run'' AND schema_id = SCHEMA_ID(''@dbo@''))
CREATE TABLE @dbo@.CRS_batch_run (
CRS_batch_run_ID int NOT NULL,
CRSBR_batch_run int NOT NULL,
CRSBR_conversation_ID int NOT NULL,
CRSBR_source_reference varchar(255) NULL,
CRSBR_rowguid uniqueidentifier NOT NULL DEFAULT (newsequentialid()),
CRSBR_pharmacy_code char(6) NOT NULL DEFAULT (''@phcode@''),
CONSTRAINT PK_CRS_batch_run PRIMARY KEY NONCLUSTERED (CRS_batch_run_ID),
CONSTRAINT CK_CRS_batch_run_pharmacy_code CHECK ([CRSBR_pharmacy_code]=''@phcode@'')
);
IF EXISTS (SELECT 1 FROM sys.tables WHERE name = ''CRS_document_header'' AND schema_id = SCHEMA_ID(''@dbo@''))
DROP TABLE @dbo@.CRS_document_header;
IF NOT EXISTS (SELECT 1 FROM sys.tables WHERE name = ''CRS_document_header'' AND schema_id = SCHEMA_ID(''@dbo@''))
CREATE TABLE @dbo@.CRS_document_header (
CRS_document_header_ID int NOT NULL,
CRSDH_document_header int NOT NULL,
CRSDH_conversation_ID int NOT NULL,
CRSDH_source tinyint NOT NULL,
CRSDH_creation_date datetime2 NOT NULL,
CRSDH_source_reference varchar(255) NULL,
CRSDH_rowguid uniqueidentifier NOT NULL DEFAULT (newsequentialid()),
CRSDH_pharmacy_code char(6) NOT NULL DEFAULT (''@phcode@''),
CONSTRAINT PK_CRS_document_header PRIMARY KEY NONCLUSTERED (CRS_document_header_ID),
CONSTRAINT CK_CRS_document_header_pharmacy_code CHECK ([CRSDH_pharmacy_code]=''@phcode@'')
);
IF EXISTS (SELECT 1 FROM sys.tables WHERE name = ''DH_Criteria'' AND schema_id = SCHEMA_ID(''@dbo@''))
DROP TABLE @dbo@.DH_Criteria;
IF NOT EXISTS (SELECT 1 FROM sys.tables WHERE name = ''DH_Criteria'' AND schema_id = SCHEMA_ID(''@dbo@''))
CREATE TABLE @dbo@.DH_Criteria (
DH_criteria_ID int NOT NULL,
DHCR_document_header int NOT NULL,
DHCR_criteria int NOT NULL,
DHCR_remark varchar(255) NULL,
DHCR_TS timestamp NOT NULL,
DHCR_VGUID varchar(36) NULL DEFAULT (newid()),
DHCR_master_ID varchar(60) NULL,
DHCR_rowguid uniqueidentifier NOT NULL DEFAULT (newsequentialid()),
DHCR_pharmacy_code char(6) NOT NULL DEFAULT (''@phcode@''),
CONSTRAINT PK_DH_Criteria PRIMARY KEY NONCLUSTERED (DH_criteria_ID),
CONSTRAINT CK_DH_Criteria_pharmacy_code CHECK ([DHCR_pharmacy_code]=''@phcode@'')
);
IF EXISTS (SELECT 1 FROM sys.tables WHERE name = ''Document_date'' AND schema_id = SCHEMA_ID(''@dbo@''))
DROP TABLE @dbo@.Document_date;
IF NOT EXISTS (SELECT 1 FROM sys.tables WHERE name = ''Document_date'' AND schema_id = SCHEMA_ID(''@dbo@''))
CREATE TABLE @dbo@.Document_date (
Document_date_ID int NOT NULL,
DD_batch_run int NULL,
DD_document_header int NOT NULL,
DD_insurance_bill_to int NULL,
DD_date datetime NOT NULL,
DD_real_date datetime NULL,
DD_preparation_date datetime NULL,
DD_promised_date datetime NULL,
DD_element_requirement_date datetime NULL,
DD_amount decimal NULL,
DD_type smallint NOT NULL,
DD_label varchar(60) NULL,
DD_mandatory bit NOT NULL DEFAULT ((0)),
DD_percentage decimal NULL,
DD_reminder_level smallint NULL,
DD_delivery_type smallint NULL,
DD_tracking_number varchar(30) NULL,
DD_error_list varchar(255) NULL,
DD_remark varchar(max) NULL,
DD_VGUID varchar(36) NULL DEFAULT (newid()),
DD_master_ID varchar(60) NULL,
DD_TS timestamp NOT NULL,
DD_PH_insurance_plan uniqueidentifier NULL,
DD_rowguid uniqueidentifier NOT NULL DEFAULT (newsequentialid()),
DD_pharmacy_code char(6) NOT NULL DEFAULT (''@phcode@''),
CONSTRAINT PK_Document_date PRIMARY KEY NONCLUSTERED (Document_date_ID),
CONSTRAINT CK_Document_date_pharmacy_code CHECK ([DD_pharmacy_code]=''@phcode@'')
);
IF EXISTS (SELECT 1 FROM sys.tables WHERE name = ''Document_header'' AND schema_id = SCHEMA_ID(''@dbo@''))
DROP TABLE @dbo@.Document_header;
IF NOT EXISTS (SELECT 1 FROM sys.tables WHERE name = ''Document_header'' AND schema_id = SCHEMA_ID(''@dbo@''))
CREATE TABLE @dbo@.Document_header (
Document_header_ID int NOT NULL,
DH_subsidiary int NOT NULL,
DH_address_contact_person_list int NULL,
DH_VAT_period int NULL,
DH_language int NULL,
DH_default_task int NULL,
DH_invoicing_method int NULL,
DH_payment_method int NULL,
DH_source_financial_relation int NULL,
DH_financial_relation_account int NULL,
DH_shipping_method int NULL,
DH_work_order int NULL,
DH_journal int NULL,
DH_default_accounting_period int NULL,
DH_bmc_user_profile int NULL,
DH_currency int NULL,
DH_delivery_code int NULL,
DH_payment_terms int NULL,
DH_predefined_entry int NOT NULL,
DH_account int NULL,
DH_sold_to int NOT NULL,
DH_ship_to int NOT NULL,
DH_bill_to int NOT NULL,
DH_send_bill_to int NOT NULL,
DH_add_turnover_to int NOT NULL,
DH_freight_forwarder int NULL,
DH_def_PCEM int NULL,
DH_def_inventory_site int NULL,
DH_def_inventory_location int NULL,
DH_def_sales_representative int NULL,
DH_vehicle int NULL,
DH_time_period int NULL,
DH_printed_copies smallint NOT NULL DEFAULT (0),
DH_copies smallint NOT NULL DEFAULT (0),
DH_originals smallint NOT NULL DEFAULT (0),
DH_reminder_level smallint NOT NULL DEFAULT (0),
DH_label varchar(30) NULL,
DH_ship_to_text varchar(255) NULL,
DH_sold_to_text varchar(255) NULL,
DH_send_bill_to_text varchar(255) NULL,
DH_our_ref varchar(255) NULL,
DH_your_ref varchar(255) NULL,
DH_reference varchar(255) NULL,
DH_doc_number varchar(15) NULL,
DH_accounting_number int NULL,
DH_batch_number int NULL,
DH_archive_number varchar(60) NULL,
DH_accounting_status smallint NOT NULL DEFAULT (1),
DH_open_item bit NOT NULL DEFAULT (0),
DH_doc_date datetime NOT NULL,
DH_value_date datetime NOT NULL,
DH_input_date datetime NULL,
DH_delivery_date datetime NULL,
DH_due_date_basis datetime NULL,
DH_management_value_date datetime NULL,
DH_dealt_by varchar(60) NULL,
DH_remark varchar(max) NULL,
DH_version smallint NOT NULL DEFAULT (0),
DH_status smallint NOT NULL,
DH_state smallint NOT NULL DEFAULT (1),
DH_print_code smallint NOT NULL,
DH_tax_calculated bit NOT NULL DEFAULT (0),
DH_exchange_rate float NULL DEFAULT (1),
DH_BVR_reference varchar(30) NULL,
DH_BVR_original_line varchar(255) NULL,
DH_invoice_group varchar(30) NULL,
DH_TS timestamp NOT NULL,
DH_organizational_unit int NULL,
DH_IPI_reference varchar(60) NULL,
DH_bank_fees_settlement smallint NULL,
DH_cash_status smallint NULL,
DH_inventory_interface smallint NULL,
DH_accounting_interface smallint NULL,
DH_VGUID varchar(36) NULL DEFAULT (newid()),
DH_inventory_status smallint NULL,
DH_master_ID varchar(60) NULL,
DH_allocation_status smallint NULL,
DH_ALT_type smallint NULL,
DH_bonus_points decimal NULL,
DH_IOU_signature_status smallint NULL,
DH_IOU_signature_unlock_code varchar(255) NULL,
DH_external_doc_number varchar(30) NULL,
DH_VIP_card_barcode varchar(30) NULL,
DH_transitory_PERM int NULL,
DH_transitory_start_date datetime NULL,
DH_robot_batch_number varchar(60) NULL,
DH_prescription_control_status smallint NULL,
DH_prescription_control_status_date datetime NULL,
DH_multi_basket_GUID uniqueidentifier NULL,
DH_employee_card_number nvarchar(15) NULL,
DH_rowguid uniqueidentifier NOT NULL DEFAULT (newsequentialid()),
DH_pharmacy_code char(6) NOT NULL DEFAULT (''@phcode@''),
CONSTRAINT PK_Document_header PRIMARY KEY NONCLUSTERED (Document_header_ID),
CONSTRAINT CK_Document_header_pharmacy_code CHECK ([DH_pharmacy_code]=''@phcode@'')
);
';
DECLARE @trg TABLE(
id INT IDENTITY NOT NULL PRIMARY KEY,
phcode VARCHAR(6) NOT NULL,
sch VARCHAR(20) NOT NULL
);
--list of pharmacies and phcy_code to handle
INSERT INTO @trg (
[phcode],
[sch]
)
VALUES ('gam091','ama091_dbo')
,('gam251', 'ama251_dbo')
,('gam511', 'ama511_dbo')
;
DECLARE @phcode VARCHAR(6), @sch VARCHAR(20);
/* declare variables */
DECLARE @q NVARCHAR(MAX)
DECLARE csr_schema CURSOR FAST_FORWARD READ_ONLY FOR
SELECT [t].[phcode], [t].[sch]
FROM @trg AS [t];
OPEN csr_schema
FETCH NEXT FROM csr_schema INTO @phcode, @sch
WHILE @@FETCH_STATUS = 0
BEGIN
SET @q = REPLACE(REPLACE(@tpl, '@dbo@', @sch), '@phcode@', @phcode)
--PRINT @q
EXEC [sys].[sp_executesql]
@q
,N''
;
FETCH NEXT FROM csr_schema INTO @phcode, @sch
END
CLOSE csr_schema
DEALLOCATE csr_schema