`campaign_id` char(36) DEFAULT NULL,
`BehaviorType` varchar(45) DEFAULT NULL,
`ExecutingState` varchar(45) DEFAULT NULL,
`ModificationTime` varchar(45) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
这个表如无意外,ID不要设置成为唯一索引,因为本身就存在多条同一个记录的更改。接下来在sql server建立对应的表。
?
?
USE [SugarCRMDB]
GO
/****** Object: Table [dbo].[account] Script Date: 2015/6/24 13:49:20 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo]. [account](
[id] [char] (36) NOT NULL,
[name] [varchar] (150) NULL,
[date_entered] [datetime] NULL,
[date_modified] [datetime] NULL,
[modified_user_id] [char] (36) NULL,
[created_by] [char] (36) NULL,
[description] [text] NULL,
[deleted] [smallint] NULL,
[assigned_user_id] [char] (36) NULL,
[account_type] [varchar] (50) NULL,
[industry] [varchar] (50) NULL,
[annual_revenue] [varchar] (100) NULL,
[phone_fax] [varchar] (100) NULL,
[billing_address_street] [varchar] (150) NULL,
[billing_address_city] [varchar] (100) NULL,
[billing_address_state] [varchar] (100) NULL,
[billing_address_postalcode] [varchar] (20) NULL,
[billing_address_country] [varchar] (255) NULL,
[rating] [varchar] (100) NULL,
[phone_office] [varchar] (100) NULL,
[phone_alternate] [varchar] (100) NULL,
[website] [varchar] (255) NULL,
[ownership] [varchar] (100) NULL,
[employees] [varchar] (10) NULL,
[ticker_symbol] [varchar] (10) NULL,
[shipping_address_street] [varchar] (150) NULL,
[shipping_address_city] [varchar] (100) NULL,
[shipping_address_state] [varchar] (100) NULL,
[shipping_address_postalcode] [varchar] (20) NULL,
[shipping_address_country] [varchar] (255) NULL,
[parent_id] [char] (36) NULL,
[sic_code] [varchar] (10) NULL,
[campaign_id] [char] (36) NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
?
最后建立sql server存储过程,这边尤其要注意的是要rtrim mysql char类型,因为sql server对这个是完全填充的,如果有多余空格插入会报错,同时 要定义为 别名,因为在 下面的插入是根据别名字段来的。
?
USE [SugarCRMDB]
GO
/****** Object: StoredProcedure [dbo].[trigger_account] Script Date: 2015/6/24 14:38:38 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER procedure [dbo]. [trigger_account]
as
--insert into sugarcrmtablebackup(id,name) select * from openquery(MySql, 'select id,name from sugarcrmtablebackup where NOT ISNULL(ExecutingState) ')
--插入BehaviorState为I的记录
--insert into account(id,name,date_entered,date_modified,modified_user_id,created_by,[description],deleted,assigned_user_id,account_type,industry,annual_revenue,phone_fax,billing_address_street,billing_address_city,billing_address_state,billing_address_postalcode,billing_address_country,rating,phone_office,phone_alternate,website,[ownership],employees,ticker_symbol,shipping_address_street,shipping_address_city,shipping_address_state,shipping_address_postalcode,shipping_address_country,parent_id,sic_code,campaign_id)
--select * from openquery(MySql, 'select id,name,date_entered,date_modified,modified_user_id,created_by,description,deleted,assigned_user_id,account_type,industry,annual_revenue,phone_fax,billing_address_street,billing_address_city,billing_address_state,billing_address_postalcode