SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
----將DCM中的系統用戶資料同步到WebOrder用戶表
ALTER PROCEDURE [dbo].[SP_WO_SYNC_SYS_USERS]
(
@IsFirst int, --是否是第一次導入
@WebOrderDBName nvarchar(50) --WebOrderDB的名稱
)
AS
BEGIN
SET NOCOUNT ON;
DECLARE @sql nvarchar(4000)
DECLARE @Name nvarchar(50)
DECLARE @FullName nvarchar(50)
DECLARE @WoPassword nvarchar(50)
DECLARE @Enabled nvarchar(50)
DECLARE @Attribute1_Output nvarchar(50)
DECLARE @Domain nvarchar(50)
DECLARE @Email nvarchar(50)
DECLARE @Phone nvarchar(50)
DECLARE @DefaultURL nvarchar(50)
DECLARE @CreateUser nvarchar(50)
DECLARE @Active nvarchar(50)
DECLARE @Attribute1 nvarchar(50)
DECLARE @Attribute2 nvarchar(50)
DECLARE @Attribute3 nvarchar(50)
SET @Domain ='Ariston'
SET @Email = ''
SET @Phone =''
SET @CreateUser = 'admin'
SET @DefaultURL =''
SET @Active = '0'
SET @Attribute1 ='0'
SET @Attribute2 ='同步用戶'
SET @Attribute3 =''
BEGIN
--將DCM用戶表中的用戶導入到WebOrder用戶表
SET @sql = 'DECLARE CustCurosr CURSOR FOR SELECT RTRIM(Name),RTRIM(FullName),RTRIM(Password),RTRIM(UPPER(Enabled)) from tbl_sysuser '
IF @IsFirst = 1
SET @sql = @sql + ' where LastUpdateTime = ''1900-01-01'' '
ELSE
SET @sql = @sql + ' where LastUpdateTime>dateadd(day,-2,getdate()) and LastUpdateTime<dateadd(day,1,getdate()) '
EXECUTE sp_executesql @sql
OPEN CustCurosr
FETCH NEXT FROM CustCurosr
INTO @Name,@FullName,@WoPassword,@Enabled
WHILE @@FETCH_STATUS = 0
BEGIN
SET @sql =N'SELECT @Attribute1_Out=Attribute1 FROM ' + @WebOrderDBName + '..WSCUser WHERE ACCOUNT=''' + @Name + ''' '
EXECUTE sp_executesql @sql,N'@Attribute1_Out nvarchar(50) output',@Attribute1_Output output
IF @@rowcount = 0
BEGIN
--INSERT DATA
IF @Enabled='TRUE'
BEGIN
SET @Attribute3 = convert(nvarchar(50),getdate(),121)
SET @sql='INSERT INTO ' + @WebOrderDBName + '..[WSCUser]
([Account]
,[Domain]
,[EmpNo]
,[Email]
,[Phone]
,[Description]
,[Password]
,[LanguageID]
,[DefaultURL]
,[Active]
,[LogonTimes]
,[LastLogonTime]
,[CreateTime]
,[CreateUser]
,[Attribute1]
,[Attribute2]
,[Attribute3])
VALUES
(''' + @Name + '''
,''' + @Domain + '''
,''' + @Name + '''
,''' + @Email + '''
,''' + @Phone + '''
,''' + @FullName + '''
,''' + @WoPassword + '''
,2
,''' + @DefaultURL + '''
,1
,0
,getdate()
,getdate()
,''' + @CreateUser + '''
,''' + @Attribute1 + '''
,''' + @Attribute2 + '''
,''' + @Attribute3 + ''')'
EXECUTE sp_executesql @sql
END
END
ELSE IF @@rowcount = 1
BEGIN
SET @Attribute3 = convert(nvarchar(50),getdate(),121)
IF @Enabled='TRUE'
SET @Active = '1'
IF @Attribute1_Output <>'1' --如果已存在此客戶用戶
BEGIN
SET @sql='UPDATE ' + @WebOrderDBName + '..WSCUser SET Password=''' + @WoPassword + ''',[Active]=' + @Active + ',Attribute1=''' + @Attribute1 + ''',Attribute2=''' + @Attribute2 + ''',Attribute3=''' + @Attribute3 + ''' WHERE ACCOUNT=''' + @Name + ''' '--UPDATE DATA
EXECUTE sp_executesql @sql
END
END
ELSE
--Insert Into Error Log
BEGIN
SET @sql='INSERT INTO ' + @WebOrderDBName + '..[WOSytemLog]
([OID]
,[USERID]
,[LOGDATE]
,[LOGDESC]
,[OPERATION])
VALUES
(newid()
,''' + @CreateUser + '''
,getdate()
,''DCM存儲過程SP_WO_SYNC_SYS_USERS出錯,賬號' + @Name + '的用戶數據重複''
,''DCM系統用戶同步'')'
EXECUTE sp_executesql @sql
END
FETCH NEXT FROM CustCurosr
INTO @Name,@FullName,@WoPassword,@Enabled
END
CLOSE CustCurosr
DEALLOCATE CustCurosr
END
END
SQL 存儲過程示例01
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.