2

I have one function for compare two CSV string I want to use this function in Stored procedure I did but now working ...I think I am using function in wrong way Please can you modify my S_P

ALTER PROC [dbo].[bb_AcquireInvtBanksSeekMatch] 
      @acq_targetCountry25 varchar(1500),
      @acq_bizsect25 varchar(1500),
      @acq_stageofCompany varchar(50),
      @acq_invstmntsize25 varchar(1500)  
AS 
    SET NOCOUNT ON 
    SET XACT_ABORT ON  

    BEGIN TRAN


    SELECT [bb_investorbanks_seek].[seek_id], [bb_investorbanks_seek].[user_id],    [bb_investorbanks_seek].[seek_actualRole], 
    [bb_investorbanks_seek].[seek_firmBased5],[bb_investorbanks_seek].    [seek_sectorOperate5],    [bb_investorbanks_seek].[seek_stageCompany], 
    [bb_investorbanks_seek].[seek_lookingToRaise25] 

    FROM   [dbo].[bb_investorbanks_seek] ,[dbo].[bb_user]       


    WHERE 
    (dbo.CompareCSV([bb_investorbanks_seek].[seek_firmBased5] , @acq_targetCountry25)=1 OR 
        dbo.CompareCSV([bb_investorbanks_seek].[seek_sectorOperate5] , @acq_bizsect25)=1 OR
    dbo.CompareCSV([bb_investorbanks_seek].[seek_stageCompany] , @acq_stageofCompany) =1 OR     
    dbo.CompareCSV([bb_investorbanks_seek].[seek_lookingToRaise25] , @acq_invstmntsize25)=1 AND 
([bb_investorbanks_seek].[user_id] = [bb_user].[user_id]) AND ([bb_investorbanks_seek].[user_id] <> 0) 

    COMMIT
4

2 回答 2

3

在 SQL Server 中调用函数时,它们必须作为 SELECT 完成

SELECT [ColumnNameToSelectFromFunction] FROM [Function](Parameters for function all seperated by a ,)
于 2013-07-16T12:06:07.597 回答
2

试试这个——

ALTER PROC [dbo].[bb_AcquireInvtBanksSeekMatch]

     @acq_targetCountry25 VARCHAR(1500),
     @acq_bizsect25 VARCHAR(1500),
     @acq_stageofCompany VARCHAR(50),
     @acq_invstmntsize25 VARCHAR(1500)

AS BEGIN

     SET NOCOUNT ON
     SET XACT_ABORT ON

     SELECT
           s.[seek_id]
         , s.[user_id]
         , s.[seek_actualRole]
         , s.[seek_firmBased5]
         , s.[seek_sectorOperate5]
         , s.[seek_stageCompany]
         , s.[seek_lookingToRaise25]
     FROM dbo.bb_investorbanks_seek s
     JOIN dbo.bb_user u ON s.[user_id] = u.[user_id]
     WHERE (
                  dbo.CompareCSV(s.[seek_firmBased5] , @acq_targetCountry25) = 1 
               OR dbo.CompareCSV(s.[seek_sectorOperate5] , @acq_bizsect25) = 1 
               OR dbo.CompareCSV(s.[seek_stageCompany] , @acq_stageofCompany) = 1 
               OR dbo.CompareCSV(s.[seek_lookingToRaise25] , @acq_invstmntsize25) = 1 
          )
          AND s.[user_id] <> 0 

END
于 2013-07-16T12:21:55.657 回答