|
|
|
VIEW & UNION
|
|||
|---|---|---|---|
|
#18+
Господа плз help Есть одна таблица (Т) сумашедших размеров ( >500000 строк) с фин информацией за несколько лет. Реально юзеры обращаются к информации на 6 месяцев назад, ну а для отчетов надо все из-за чего отчет генерится минут 5, а надо до 1 мин. Хотел сделать две таблицы - одна до 1-5-2002 (Т1) а другая после(Т2) с которой все будут работать. Для отчетов снять итоговую строку с Т1 и использовать ее. Чтобы не менять логику на клиенте сделал проекцию с именем таблицы(T). Все было весело до момента попытки обновить представление. SQL ругается на union в проекции из-за чего модифицировать ее не получается. Как быть ? Пробовал на простых примерах : CREATE TABLE [dbo].[T2] ( [F1] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [UID] [uniqueidentifier] NOT NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[T1] ( [F1] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [UID] [uniqueidentifier] NOT NULL ) ON [PRIMARY] GO ALTER TABLE [dbo].[T2] WITH NOCHECK ADD CONSTRAINT [PK_T2] PRIMARY KEY CLUSTERED ( [UID] ) ON [PRIMARY] GO ALTER TABLE [dbo].[T1] WITH NOCHECK ADD CONSTRAINT [PK_T1] PRIMARY KEY CLUSTERED ( [UID] ) ON [PRIMARY] GO ALTER TABLE [dbo].[T2] WITH NOCHECK ADD CONSTRAINT [DF_T2_UID] DEFAULT (newid()) FOR [UID] GO ALTER TABLE [dbo].[T1] WITH NOCHECK ADD CONSTRAINT [DF_T1_UID] DEFAULT (newid()) FOR [UID] GO SET QUOTED_IDENTIFIER ON GO SET ANSI_NULLS ON GO CREATE VIEW dbo.v12 AS SELECT * FROM t1 UNION SELECT * FROM t2 GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO Результат такой же. SQL2K-standart Подскажите плз !!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2002, 14:01:08 |
|
||
|
VIEW & UNION
|
|||
|---|---|---|---|
|
#18+
Для начала поставьте UNION ALL А потом почитайте BOL - Creating and Maintaining Databases - Views - Creating a View - Creating a Partitioned View - Updatable Partitioned Views ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2002, 14:06:36 |
|
||
|
VIEW & UNION
|
|||
|---|---|---|---|
|
#18+
4Glory union all поставил - безполезно по поводу BOL: Updatable Partitioned Views A view is considered an updatable partitioned view if: The view is a set of SELECT statements whose individual result sets are combined into one using the UNION ALL statement. Each individual SELECT statement references one SQL Server base table. The table can be either a local table or a linked table referenced using a four-part name, the OPENROWSET function, or the OPENDATASOURCE function (you cannot use an OPENDATASOURCE or OPENROWSET function that specifies a pass-through query Пардон за слабое знание вражеского языка, но как я понял - это набор селектов, которые самостоятельно выбирают данные с помощью union all. Каждый селект ссылается на одну таблицу. Ну далее как я понял идут слова которые не имеют отношения к моему воппросу. Так я вроде бы все условия выполнил. Может Вы подскажете в чем дело для тестовых таблиц Т1 и Т2, может я зря поставил в них primary key ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2002, 14:30:29 |
|
||
|
VIEW & UNION
|
|||
|---|---|---|---|
|
#18+
А как именно он ругается? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2002, 14:33:15 |
|
||
|
VIEW & UNION
|
|||
|---|---|---|---|
|
#18+
4Garya Если из QA то так delete from v12 where uid='A664EAD3-BD78-49F8-8829-5216D95447E7' Server: Msg 4436, Level 16, State 12, Line 1 UNION ALL view 'v12' is not updatable because a partitioning column was not found. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2002, 14:37:56 |
|
||
|
VIEW & UNION
|
|||
|---|---|---|---|
|
#18+
Попробовал новое удивительное ср-во sql2k : INSTEAD OF CREATE TRIGGER trg_d_v12 ON v12 INSTEAD OF delete AS declare @F1 nvarchar(500),@UID uniqueidentifier select @f1=f1 from deleted select @UID=UID from deleted if @f1<=5 delete from t1 where uid=@UID if @f1>5 delete from t2 where uid=@UID go delete from v12 where uid='{A664EAD3-BD78-49F8-8829-5216D95447E7}' Заработало. Щас попробую на вставку и обновление ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2002, 15:13:27 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=32059419&tid=1819512]: |
0ms |
get settings: |
6ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
28ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
30ms |
get tp. blocked users: |
1ms |
| others: | 200ms |
| total: | 286ms |

| 0 / 0 |
