[quote]
> Ma non credo che sia troppo OffTopics, magari questa sera provo a postare uno scriptino ( che dovrei avere a casa ) per creare una View di SQLServer2008 indicizzata ( WITH SCHEMABINDING .... )
[/quote]
Caso strano lo avevo anche qui dove lavoro.
Lo ho testato e funziona, poi durante la connessione ODBC con Access NON ti chiede di indicare il CampoChiave .....
Ma ti ripeto il problema è scoprire perche perdi la Editabilita. ....
[code]
/*
Questo script di esempio ( SQL2008R2 ) genera:
___ un DB
___ 2 Tabelle con Key
___ 1 Relazione
___ 1 Vista con Schemabinding
___ 1 indice sulla vista
*/
-- Creo il DB
USE master;
GO
CREATE DATABASE VI01;
GO
-- Uso il DB appena creato
USE VI01;
GO
-- Creo una tabella Fo ( Fornitori )
CREATE TABLE [dbo].[Fo]
(
[FoId] [int] IDENTITY(1,1) NOT NULL,
[Fornit] [varchar](50) NULL,
[FoCitt] [varchar](50) NULL,
[FoTele] [nchar](10) NULL,
CONSTRAINT [KFo] PRIMARY KEY CLUSTERED
(
[FoId] ASC
)
WITH
(
PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON
) ON [PRIMARY]
) ON [PRIMARY]
GO
-- Creo una tabella OD ( Ordini )
CREATE TABLE [dbo].[Od]
(
[OdId] [int] IDENTITY(1,1) NOT NULL,
[OdNume] [varchar](50) NULL,
[OdFo] [int] NULL,
[OdMate] [varchar](50) NULL,
[OdImpo] [int] NULL,
CONSTRAINT [KOr] PRIMARY KEY CLUSTERED
(
[OdId] ASC
)
WITH
(
PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON
) ON [PRIMARY]
) ON [PRIMARY]
GO
-- Creo la relazione
ALTER TABLE [dbo].[Od] WITH CHECK ADD CONSTRAINT [ReFoOr] FOREIGN KEY([OdFo])
REFERENCES [dbo].[Fo] ([FoId])
GO
ALTER TABLE [dbo].[Od] CHECK CONSTRAINT [ReFoOr]
GO
-- Inserisco un po di Dati
SET IDENTITY_INSERT [dbo].[Fo] ON
INSERT [dbo].[Fo]
([FoId], [Fornit], [FoCitt], [FoTele])
VALUES
(1, N'Forn1', N'Milano', NULL),
(2, N'Forn2', N'Bologna', NULL),
(3, N'Forn3', N'Firenze', NULL),
(4, N'Forn4', N'Roma', NULL),
(5, N'Forn5', N'Napoli', NULL);
SET IDENTITY_INSERT [dbo].[Fo] OFF
-- _______________________________________________________________
SET IDENTITY_INSERT [dbo].[Od] ON
INSERT [dbo].[Od]
([OdId], [OdNume], [OdFo], [OdMate], [OdImpo])
VALUES
(1, N'20', 2, N'Mele', 500),
(3, N'20', 2, N'Pere', 14),
(4, N'30', 3, N'Ananas', 150),
(5, N'22', 2, N'Castagne', 120);
SET IDENTITY_INSERT [dbo].[Od] OFF
GO
-- Creo la vista indicizzata
CREATE VIEW
[dbo].[ViInd01]
WITH SCHEMABINDING
AS
SELECT
dbo.Od.OdId,
dbo.Od.OdNume,
dbo.Od.OdFo,
dbo.Od.OdMate,
dbo.Od.OdImpo,
dbo.Fo.Fornit
FROM
dbo.Fo
INNER JOIN
dbo.Od
ON
dbo.Fo.FoId = dbo.Od.OdFo
GO
-- Creo l'indice
CREATE UNIQUE CLUSTERED INDEX NomeIndice
ON dbo.ViInd01
(
[OdId] ASC
)
GO
/*
CREATE UNIQUE CLUSTERED INDEX idx_campo
ON dbo.VIEWxxx
(orderid)
*/
[/code]
.