Deutsch
Germany.ruФорумы → Архив Досок→ Программирование

​Поменять текущее значение для TIMESTAMP

20.07.18 10:50
Re: ​Поменять текущее значение для TIMESTAMP
 
Murr патриот
Murr
в ответ soarian 19.07.18 19:45

тогда чем гарантировано, что это поле юник?

-----

Microsoft'oм, вообще-то.


Если у Вас ДТС пакеты регулярно импортируют данные

------

Ну какая может быть регулярность при разовом переносе базы?


...a исправить как-то так:

-----

Мысль, конечно, интересная... но...

Вот тебе скриптик с реальной таблички и замена поля типа TIMESTAMP:


DROP TABLE [dbo].[Defaults]

GO


SET ANSI_NULLS ON

GO


SET QUOTED_IDENTIFIER ON

GO


SET ANSI_PADDING ON

GO


CREATE TABLE [dbo].[Defaults](

[IDs] [int] IDENTITY(1,1) NOT NULL,

[Active] [varchar](1) NOT NULL DEFAULT ('Y'),

[KeyID] [int] NOT NULL DEFAULT ((1)),

[RecordType] [int] NOT NULL DEFAULT ((0)),

[SequenceNo] [int] NOT NULL,

[RowID] [binary](8) NULL,

[RowTS] [timestamp] NOT NULL,

PRIMARY KEY CLUSTERED

(

[IDs] 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


SET ANSI_PADDING OFF

GO


SET IDENTITY_INSERT [dbo].[Defaults] ON

GO


INSERT INTO [dbo].[Defaults]

([IDs]

,[Active]

,[KeyID]

,[RecordType]

,[SequenceNo]

,[RowID])

VALUES

(1, 'Y', 4, 99, 0, 0x00000000000007E5)

GO


SET IDENTITY_INSERT [dbo].[Defaults] OFF

GO


DECLARE @RowTS AS TIMESTAMP

SELECT @RowTS = RowTS FROM dbo.DEFAULTS WHERE IDs = 1

UPDATE [dbo].[Defaults]

SET [RowTS] = @RowTS + 1

WHERE IDs = 1

GO


Надеюсь после его исполнения кое-что станет понятнее.

Меня интересует как установить начальное значение для вставляемых в [RowTS] значений.

 

Перейти на