【问题标题】:Using an insert statement in stored procedure to copy some info from one table and insert new info from VBA在存储过程中使用插入语句从一个表中复制一些信息并从 VBA 中插入新信息
【发布时间】:2018-11-28 16:56:01
【问题描述】:

我创建了一个存储过程,它将复制表 1 中的一些列并将它们的值插入到表 2 上的新条目中。同时,需要更新表 2 上新条目上的 4 列日期、用户名和来自 VBA 用户窗体上的按钮的两个变量。

我知道如何单独完成这些事情,但我不确定如何让它们一起工作。我可以做两个陈述,但我需要他们都去表 2 上的同一个条目,而不是两个单独的条目。

以下是我想将两个语句组合到一个存储过程中,以通过单击 VBA 按钮创建一个新条目。

SET IDENTITY_INSERT [PIA].[dbo].[AttendanceHistory] ON 
INSERT INTO [PIA].[dbo].[AttendanceHistory] (FirstName, LastName, AgentName, Location,
              EmployeeGroup, ContractAgency, Manager, Supervisor, Team, Title, Position, 
              Staffcimid, FTPT, Bilingual, Five9Email, Email, Weekdayschedule, 
              Weekendschedule, CreatedBy, CreatedDate, Exception, Exceptionreason)
SELECT FirstName, LastName, AgentName, Location, EmployeeGroup, ContractAgency, Manager, 
       Supervisor,Team, Title, Position, Staffcimid, FTPT, Bilingual, Five9Email, Email, 
       Weekdayschedule, Weekendschedule
FROM dbo.Attendance WHERE dbo.Attendance.Agentname = @Agent

Set [CreatedDate] = GETDATE and 
    [CreatedBy] = @userid and 
    [Exception] = @except and 
    [ExceptionReason] = @Exceptreason 

【问题讨论】:

    标签: sql sql-server vba stored-procedures


    【解决方案1】:

    看看这是否有帮助:)

    INSERT INTO [PIA].[dbo].[AttendanceHistory] (FirstName,LastName,AgentName,Location,EmployeeGroup,ContractAgency,Manager,Supervisor,Team,Title,Position,Staffcimid,FTPT,Bilingual,Five9Email,Email,Weekdayschedule,Weekendschedule,CreatedBy,CreatedDate,Exception,Exceptionreason)
    SELECT FirstName,LastName,AgentName,Location,EmployeeGroup,ContractAgency,Manager,Supervisor,Team,Title,Position,Staffcimid,FTPT,Bilingual,Five9Email,Email,Weekdayschedule,Weekendschedule, GETDATE() , @userid, @except, @Exceptreason
    FROM dbo.Attendance WHERE dbo.Attendance.Agentname = @Agent
    

    【讨论】:

    • 请为后代解释您的答案调整了什么。只是看代码不清楚。
    【解决方案2】:

    最好的方法是在 select 子句中传递变量,如下所示:

    INSERT INTO [PIA].[dbo].[AttendanceHistory] (FirstName, LastName, AgentName, Location,
                  EmployeeGroup, ContractAgency, Manager, Supervisor, Team, Title, Position, 
                  Staffcimid, FTPT, Bilingual, Five9Email, Email, Weekdayschedule, 
                  Weekendschedule, CreatedBy, CreatedDate, Exception, Exceptionreason)
    SELECT FirstName, LastName, AgentName, Location, EmployeeGroup, ContractAgency, Manager, 
           Supervisor,Team, Title, Position, Staffcimid, FTPT, Bilingual, Five9Email, Email, 
           Weekdayschedule, Weekendschedule, GETDATE() , @userid, @except, @Exceptreason
    FROM dbo.Attendance WHERE dbo.Attendance.Agentname = @Agent
    

    GETDATE() , @userid, @except, @Exceptreason 与表 Attendence 的列列表一起添加,因此成为常量字段。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-11-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-24
      • 1970-01-01
      相关资源
      最近更新 更多