如何调试SQL中的存储过程

问题描述 投票:0回答:1
    ALTER PROCEDURE [SQW].[usp_AddSqaeCapacityAssignHrsData_CMS]
      @ActionType varchar(10)='create',
      @UserPrincipalName varchar(500) = NULL,
      @Id INT = NULL,
      @DataFor VARCHAR(50) = NULL,
      @AreaName varchar(50) = NULL,
      @Region varchar(100) = NULL,
      @CapacityHrs INT = NULL,
      @NoofFolderCapacity INT = NULL,
      @PerFolderCapacityHrs INT = NULL,
      @CompetenciesParams [SQW].[udt_CompetencyList_CMS] READONLY 
AS
BEGIN
    
    SET NOCOUNT ON;

    BEGIN TRY
    BEGIN TRAN T1;
       
    
       IF @DataFor = 'AssignmentHrs'
         BEGIN
              
             MERGE SQW.DimSQAECapacity AS t  
                   USING (  
                          SELECT * FROM @**CompetenciesParams** 
                          ) AS s ON t.Region = @Region AND t.Competency = s.Competency
                WHEN MATCHED THEN  
                       UPDATE SET  
                        t.PerFolderCapacityHrs = @PerFolderCapacityHrs,t.IsActive=1, t.ModifiedDate = GETUTCDATE(), ModifiedBy = @UserPrincipalName
                WHEN NOT MATCHED THEN  
                    INSERT (  
                            Area,Region,Competency,CapacityHrs,NoofFolderCapacity,PerFolderCapacityHrs,CreatedDate,CreatedBy,ModifiedDate,ModifiedBy
                            )  
                    VALUES (  
                            @AreaName,@Region,s.Competency,NULL,@NoofFolderCapacity,@PerFolderCapacityHrs,GETUTCDATE(),@UserPrincipalName,GETUTCDATE(),@UserPrincipalName
                           );
            END

我想知道在 SELECT * FROM @CompetencyParams 中传递给 @CompetencyParams 的值是什么,因为它作为用户定义的类型传递。

Stored Procedure

sql stored-procedures
1个回答
0
投票

此存储过程可能会在 SQL 以外的不同平台中调用,并在其中强制为 @CompetciesParams 赋予一个值。

您的环境有可能出现这种情况吗?

© www.soinside.com 2019 - 2024. All rights reserved.