ALTER VIEW
ステートメントを実行して、ビューに格納されている列の日付書式を変更しようとしていますが、機能していません。SQL Server:ビューまたは関数に、自己参照が含まれています。ビューまたは関数が直接的または間接的に自身を参照することはできません
マイクエリ:
ALTER VIEW v_cust_invoices
AS
SELECT
FORMAT(INV_DATE,'MM-dd-yy') as INV_DATE
FROM
v_cust_invoices
私は常にエラー
ビューまたは関数 'v_cust_invoicesは' 自己参照が含まれています。私は(それが現在
yy-mm-dd
です)INV_DATE
mm-dd-yy
への日付形式を変更しようとして直接または間接的に
ビューまたは関数は、自分自身を参照することはできません。誰か助けてくれますか?私が間違っていることを確信していない。
編集:私は代わりに
ALTER VIEW v_cust_invoices
AS
SELECT FORMAT(INV_DATE,'MM-dd-yy') as INV_DATE
FROM INVOICE
をすれば、それはINV_DATE
を除くすべての列を削除します。
ビューの定義:それは自分自身を参照しないように
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE VIEW [dbo].[v_cust_invoices] AS
SELECT
CUSTOMER.CUST_NUM, CUST_LNAME,
CUST_BALANCE, INV_NUM, INV_DATE, INV_AMOUNT
FROM
CUSTOMER, INVOICE
GO
ドロップしてビューを再作成します。 SQL Enterprise Managerで開くか、Alterとしてスクリプトを作成し、定義内の型を変更してから実行します。元のビューはそれ自身を参照するものではなく、他のビューまたはテーブルを参照する必要があります –
私は理解できません。すべての種類が良いです、私はちょうどクエリに間違っています。 – inaprniac
ビューは、* tables *からデータを操作して生成しますが、このビューはデータを取得する場所ですか?ビュー定義内のテーブルへの参照はありません。 LookはFROM句でビューの現在の*定義を見た。 *テーブル*または他の*ビューへの参照が表示されます。 –