Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Как создать переменную или копирывать с разных таб.  [new]
SergeiM
Member

Откуда:
Сообщений: 29
Как создать переменную или копирывать с разных таб.

CREATE TABLE [Store] ([Kod] [int] IDENTITY (1, 1) NOT NULL ,
[N1] [varchar] (250) NULL ,
[N2] [varchar] (250) NULL ,
[N3] [varchar] (150) NULL ,
[N4] [varchar] (150) NULL ,
[U1] [varchar] (150) NULL ,
[U2] [varchar] (150) NULL ,
[U3] [varchar] (150) NULL ,
[U4] [NUMERIC] NULL,
[P] [Money] NULL,
[P0] [Money] NULL,
[P1] [Money] NULL,
[P2] [Money] NULL,
[P3] [Money] NULL,
[P4] [Money] NULL,
[P5] [Money] NULL,
[P6] [Money] NULL,
[S1] [NUMERIC] NULL,
[S2] [NUMERIC] NULL,
[S3] [NUMERIC] NULL,
[S4] [NUMERIC] NULL,
[S5] [NUMERIC] NULL,
[S6] [NUMERIC] NULL,
[S7] [NUMERIC] NULL,
[S8] [NUMERIC] NULL,
[S9] [NUMERIC] NULL,
[S10] [NUMERIC] NULL,
[UD] [datetime] NULL,
[CD] [datetime] NULL) ON [PRIMARY]

GO
CREATE TABLE [Arhiv] ([N] [int] IDENTITY (1, 1) NOT NULL,
[Kod][NUMERIC] NULL ,
[N1] [varchar] (250) NULL ,
[N3] [varchar] (250) NULL ,
[N4] [varchar] (150) NULL ,
[K] [NUMERIC] NULL,
[P0] [Money] NULL,
[P] [Money] NULL,
[U1] [varchar] (150) NULL ,
[U2] [varchar] (150) NULL ,
[U3] [varchar] (150) NULL ,
[U4] [NUMERIC] NULL ,
[S] [NUMERIC] NULL,
[US] [varchar] (150) NULL ,
[DT] [datetime] NULL,
[PR] [datetime] NULL,
[UUS] [varchar] (150) NULL ,
[UDT] [datetime] NULL) ON [PRIMARY]




GO


CREATE TRIGGER Store_Upd ON dbo.Store



FOR UPDATE
AS
dim x

IF UPDATE(S1)
INSERT INTO dbo.Arhiv([Kod],[N1],[N3],[N4],[K],[P0],[P],[U1],[U2],[U3],[U4],[S],[US],[DT],[PR],[UUS],[UDT])
SELECT DL.Kod,DL.N1,DL.N3,DL.N4,K=ISNULL(INS.S1,0)-ISNULL(DL.S1,0),P0=(ISNULL(DL.P0,0)*ISNULL(DL.S1,0)+(ISNULL(INS.S1,0)-ISNULL(DL.S1,0))*ISNULL(INS.P,0))/(ISNULL(INS.S1,0)+ISNULL(DL.S1,0)-ISNULL(DL.S1,0)),INS.P,INS.U1,INS.U2,INS.U3,INS.U4,S=1,US=SYSTEM_USER,DT=getdate(),PR=null,UUS=null,UDT=null
FROM DELETED DL INNER JOIN INSERTED INS ON DL.KOD=INS.KOD
x=P0
WHERE ISNULL(INS.S1,0)-ISNULL(DL.S1,0)>0 and INS.U4>10


???

---UPDATE C SET P0= dbo.Arhiv(P0) ??? =X
---FROM inserted i INNER JOIN dbo.Store C ON i.KOD = C.KOD
--WHERE ISNULL(C.S1,0)-ISNULL(C.S1,0)>0 and C.U4>10
28 апр 05, 12:05    [1504652]     Ответить | Цитировать Сообщить модератору
 Re: Как создать переменную или копирывать с разных таб.  [new]
vooo
Member

Откуда:
Сообщений: 1316
Не совсем понятен вопрос......
И еще - вот это что ?
dim x

Посмотрите BOL DECLARE @local_variable
28 апр 05, 12:18    [1504732]     Ответить | Цитировать Сообщить модератору
 Re: Как создать переменную или копирывать с разных таб.  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74925
автор
???


Конечно, краткость - сестра таланта, но лучше "покажите пальцем".
28 апр 05, 12:19    [1504736]     Ответить | Цитировать Сообщить модератору
 Re: Как создать переменную или копирывать с разных таб.  [new]
SergeiM
Member

Откуда:
Сообщений: 29
GO
CREATE TABLE [Store] ([Kod] [int] IDENTITY (1, 1) NOT NULL ,
[P0] [Money] NULL,
[P1] [Money] NULL,
[P2] [Money] NULL) ON [PRIMARY]

GO
CREATE TABLE [Arhiv] ([N] [int] IDENTITY (1, 1) NOT NULL,
[Kod] [numeric] NULL,
[P0] [Money] NULL,
[P1] [Money] NULL,
[P2] [Money] NULL) ON [PRIMARY]

GO
CREATE TRIGGER Store_Upd ON dbo.Store

FOR UPDATE
AS

IF UPDATE(P0)
UPDATE ins SET P1=ISNULL(INS.P0,0)-ISNULL(DL.P0,0)
FROM DELETED DL INNER JOIN INSERTED INS ON DL.KOD=INS.KOD
28 апр 05, 15:31    [1505482]     Ответить | Цитировать Сообщить модератору
 Re: Как создать переменную или копирывать с разных таб.  [new]
SergeiM
Member

Откуда:
Сообщений: 29
Или
GO
CREATE TABLE [Store] ([Kod] [int] IDENTITY (1, 1) NOT NULL ,
[P0] [Money] NULL,
[P1] [Money] NULL,
[P2] [Money] NULL) ON [PRIMARY]

GO
CREATE TABLE [Arhiv] ([N] [int] IDENTITY (1, 1) NOT NULL,
[Kod] [numeric] NULL,
[P0] [Money] NULL,
[P1] [Money] NULL,
[P2] [Money] NULL) ON [PRIMARY]

GO
CREATE TRIGGER Store_Upd ON dbo.Store

FOR UPDATE
AS

IF UPDATE(P0)
INSERT INTO dbo.Arhiv(kod,P0,P1,P2)
SELECT kod, P0,P1=ISNULL(INS.P0,0)-ISNULL(DL.P0,0),P2
FROM DELETED DL INNER JOIN INSERTED INS ON DL.KOD=INS.KOD



Updete P1=x
FROM INSERTED INS ON DL.KOD=INS.KOD
28 апр 05, 15:34    [1505502]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить