使用存储过程创建视图

Jit*_*thu 2 sql sql-server-2008 sql-view

这个问题之前已经问过几次,不幸的是我没有得到我的问题的答案.

我有两个SQL(SQL SERVER 2008)表,Employee和Employee费用,其中Employee Id分别是主键和外键.

员工表列,1.员工ID(P键)2.经理3.位置4.加入日期5.名称

员工费用表列,1.费用ID(P键)2.员工ID(F键)3.费用类型4.费用金额5.费用日期.

问题是,我想创建一个在SharePoint Web部件中使用的视图,我将在其中查询这两个表,所以我的要求是使用以下列创建视图,

从员工我需要员工ID和姓名.从员工费用我需要费用类型,费用金额,费用日期.

其他要求.

一个.如果我在Employee Expense表中有一个员工的多个条目,那么View中应该有很多行

湾 即使我在Employee Expense表中没有条目,那么我也应该在视图中获取该特定Employee的行,而Employee Expense表列为null.

请帮我继续......

编辑在Stack Overflow成员指示时添加所需的视图代码!!

CREATE VIEW ExpenseView AS (
    SELECT [Employee Expense].[Employee ID], Employee.[First Name], [Employee Expense].[Expense Type],[Employee Expense].[Expense Amount],[Employee Expense].[Expense Date]
            FROM Employee,[Employee Expense]
        WHERE [Employee Expense].[Employee ID] = Employee.[Employee ID])
Run Code Online (Sandbox Code Playgroud)

请帮忙.

Mik*_*son 10

如果要从SP中创建视图,则需要使用动态SQL.

像这样的东西.

create procedure ProcToCreateView 
as
exec ('create view MyView as select 1 as Col')
Run Code Online (Sandbox Code Playgroud)

create view...代码必须发送一个字符串参数exec,并通过它的外观,你已经有了你需要的视图的代码,所以只是将其嵌入在之间'.

我真的不知道你为什么需要那个.也许您只需要知道如何使用 SP中的视图

create procedure ProcToUseView
as
select Col
from MyView
Run Code Online (Sandbox Code Playgroud)

  • @HLGEM 我不同意。我们有一个自动创建特定数据库、其中的一些标准表和视图的流程。在 SP 内创建视图对此很有用。 (3认同)

Fel*_*tin 5

我在SQL数据库中使用以下动态SQL代码来创建具有存储过程的视图。它工作正常:

    CREATE PROCEDURE uspCreateView
    AS
    EXEC ('

    CREATE VIEW vwDataLayoutFileAssignment
    AS

    SELECT b.FileID, d.FieldID
    FROM [File] b, DataLayoutFileAssignment c, [Field] d
    WHERE b.DriverFileID = c.FileID
    AND C.DataLayoutID = d.DataLayoutID
    ')
Run Code Online (Sandbox Code Playgroud)