sql-server - 如何在存储过程中使用函数

标签 sql-server sql-server-2008 stored-procedures

我有一个用于比较两个 CSV 字符串的函数,我想在存储过程中使用此函数 我做到了,但现在正在工作......我认为我以错误的方式使用函数 请您修改我的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

最佳答案

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

SELECT [ColumnNameToSelectFromFunction] FROM [Function](Parameters for function all seperated by a ,)

关于sql-server - 如何在存储过程中使用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17675411/

相关文章:

sql-server - 没有列名列表的tsql标识插入

mysql - 每组选择四个项目?

sql - 有没有办法访问 SELECT 语句中的 "previous row"值?

sql-server - 从多个 SQL Server 表中选择 TOP 4 记录。使用 vb.net

sql - 功能键和并发

sql-server - SQL 转换备份大小列

mysql - 存储过程不在mysql中使用游标返回多行

mysql - `@` mysql变量名中的符号

MySQL 重用子查询