【问题标题】:SQL Server : declare view inside a user-define functionSQL Server:在用户定义函数中声明视图
【发布时间】:2014-09-04 03:54:31
【问题描述】:

我想在我的函数中创建视图,每当我想创建我的视图时,我只是引用函数并调用它。

我写了这段代码,但出现错误:

create FUNCTION [dbo].[testFunc]()
RETURNS bigint
AS
BEGIN
    IF OBJECT_ID ('dbo.r_Sales01_Requests__Duplicates', 'V') IS NOT NULL
       DROP VIEW dbo.r_Sales01_Requests__Duplicates ;
    go

    create view r_Sales01_Requests__Duplicates ( 
     CompanyID
    ,Branch
    ,Year
    ,VoucherType,VoucherNumber
    ,Date_Persian
    ,Row) as
     select 
         CompanyID
        ,Branch
        ,Year
        ,VoucherType
        ,VoucherNumber
        ,Date_Persian
        ,Row
     from t_SalesRequests
     group by CompanyID, Branch, Year, VoucherType, VoucherNumber, Date_Persian, Row
     having count(*)>1

     return 
END

注意:以下部分对我在创建函数时拥有它非常重要。

IF OBJECT_ID ('dbo.r_Sales01_Requests__Duplicates', 'V') IS NOT NULL
    DROP VIEW dbo.r_Sales01_Requests__Duplicates ;

【问题讨论】:

标签: sql sql-server


【解决方案1】:

函数不应该有副作用。你可以用存储过程做这样的事情:

Creating a View using stored procedure

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-28
    • 2018-06-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-25
    • 2018-10-10
    • 2019-06-10
    相关资源
    最近更新 更多