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

Откуда: Москва / Калуга
Сообщений: 33989
Блог
Коллеги, понимаю, что топик прямо не относится к теме форума, но знатоков студийных SQL-проектов тут больше всего )


Имеется проект на VS-2013, в нем изначально имеется такая таблица:

CREATE TABLE [stage].[Котировки]
(
	[ID] int IDENTITY(1,1) NOT NULL PRIMARY KEY,
	[TICKER] [nvarchar](20) NOT NULL,
	[PER] [smallint] NOT NULL,
	[DATE] DATE NOT NULL,
	[TIME] [nvarchar](50) NOT NULL,
	[OPEN] [nvarchar](50) NOT NULL,
	[HIGH] [nvarchar](50) NOT NULL,
	[LOW] [nvarchar](50) NOT NULL,
	[CLOSE] [nvarchar](50)  NOT NULL,
	[VOL] [nvarchar](50) NULL
)


Хочу попробовать in-memory, меняю таблицу так:

CREATE TABLE [stage].[Котировки]
(
	[ID] int IDENTITY(1,1) NOT NULL PRIMARY KEY NONCLUSTERED HASH WITH (BUCKET_COUNT = 100000),
	[TICKER] [nvarchar](20) NOT NULL,
	[PER] [smallint] NOT NULL,
	[DATE] DATE NOT NULL,
	[TIME] [nvarchar](50) NOT NULL,
	[OPEN] [nvarchar](50) NOT NULL,
	[HIGH] [nvarchar](50) NOT NULL,
	[LOW] [nvarchar](50) NOT NULL,
	[CLOSE] [nvarchar](50)  NOT NULL,
	[VOL] [nvarchar](50) NULL
) WITH (MEMORY_OPTIMIZED = ON, DURABILITY = SCHEMA_AND_DATA)





На стадии "публикации" студия формирует такой скрипт (переливка через промежуточную таблицу):

CREATE TABLE [stage].[tmp_ms_xx_Котировки] (
    [ID]     INT           IDENTITY (1, 1) NOT NULL,
    [TICKER] NVARCHAR (20) NOT NULL,
    [PER]    SMALLINT      NOT NULL,
    [DATE]   DATE          NOT NULL,
    [TIME]   NVARCHAR (50) NOT NULL,
    [OPEN]   NVARCHAR (50) NOT NULL,
    [HIGH]   NVARCHAR (50) NOT NULL,
    [LOW]    NVARCHAR (50) NOT NULL,
    [CLOSE]  NVARCHAR (50) NOT NULL,
    [VOL]    NVARCHAR (50) NULL,
    PRIMARY KEY NONCLUSTERED HASH ([ID]) WITH (BUCKET_COUNT = 100000)
)
WITH (MEMORY_OPTIMIZED = ON);



--И вот тут получаю закономерную ошибку:

INSERT INTO [stage].[tmp_ms_xx_Котировки] ([ID], [TICKER], [PER], [DATE], [TIME], [OPEN], [HIGH], [LOW], [CLOSE], [VOL])
SELECT [ID],
       [TICKER],
       [PER],
       [DATE],
       [TIME],
       [OPEN],
       [HIGH],
       [LOW],
       [CLOSE],
       [VOL]
FROM   [stage].[Котировки];

Starting rebuilding table [stage].[Котировки]...
(64,1): SQL72014: .Net SqlClient Data Provider: Msg 544, Level 16, State 1, Line 1 Cannot insert explicit value for identity column in table 'tmp_ms_xx_Котировки' when IDENTITY_INSERT is set to OFF.
...



Что нужно сделать, чтобы публикация прошла без ошибок?
13 окт 14, 20:35    [16699133]     Ответить | Цитировать Сообщить модератору
 Re: Вопросы по SQL-проектам в студии (VS)  [new]
sphinx_mv
Member [заблокирован]

Откуда:
Сообщений: 1672
Критик
Коллеги, понимаю, что топик прямо не относится к теме форума, но знатоков студийных SQL-проектов тут больше всего )

(бла-бла-бла)

CREATE TABLE [stage].[tmp_ms_xx_Котировки] (
    [ID]     INT           IDENTITY (1, 1) NOT NULL,

(бла-бла-бла)

INSERT INTO [stage].[tmp_ms_xx_Котировки] ([ID], [TICKER], [PER], [DATE], [TIME], [OPEN], [HIGH], [LOW], [CLOSE], [VOL])
SELECT [ID],
       [TICKER],
       [PER],
       [DATE],
       [TIME],
       [OPEN],
       [HIGH],
       [LOW],
       [CLOSE],
       [VOL]
FROM   [stage].[Котировки];

Starting rebuilding table [stage].[Котировки]...
(64,1): SQL72014: .Net SqlClient Data Provider: Msg 544, Level 16, State 1, Line 1 Cannot insert explicit value for identity column in table 'tmp_ms_xx_Котировки' when IDENTITY_INSERT is set to OFF.
...

Что нужно сделать, чтобы публикация прошла без ошибок?

Документацию почитать уже пробовали?
13 окт 14, 23:12    [16699652]     Ответить | Цитировать Сообщить модератору
 Re: Вопросы по SQL-проектам в студии (VS)  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37069
sphinx_mv
Документацию почитать уже пробовали?
А там правда есть, как заставить VS-2013 студию включать identity_insert в этом кейсе? Или чисто так, последнее предложение в теме прочитали?

Сообщение было отредактировано: 14 окт 14, 01:43
14 окт 14, 01:42    [16699913]     Ответить | Цитировать Сообщить модератору
 Re: Вопросы по SQL-проектам в студии (VS)  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
Критик,

создайте другую тиаблицу - перелейте данные и переименуйте...гороздо проще чем ис4катиь в куче настроек где включить вставку идентити.. или попройтесь в хелпе
14 окт 14, 09:39    [16700300]     Ответить | Цитировать Сообщить модератору
 Re: Вопросы по SQL-проектам в студии (VS)  [new]
Критик
Member

Откуда: Москва / Калуга
Сообщений: 33989
Блог
если разработчиков десяток - весь код не проконтролируешь и все руками не пересоздашь
14 окт 14, 10:18    [16700463]     Ответить | Цитировать Сообщить модератору
 Re: Вопросы по SQL-проектам в студии (VS)  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
Критик
если разработчиков десяток - весь код не проконтролируешь и все руками не пересоздашь

ну организация процесса разработки ето совершенно другая история... и вообще исходные коды нужно хранить в системе контроля версий ,а не в студиии по живому "резать" ,ИМХО
14 окт 14, 10:26    [16700508]     Ответить | Цитировать Сообщить модератору
 Re: Вопросы по SQL-проектам в студии (VS)  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7868
Студию недопилили, сиквельные скрипты отключают инкремент, например.
14 окт 14, 10:56    [16700702]     Ответить | Цитировать Сообщить модератору
 Re: Вопросы по SQL-проектам в студии (VS)  [new]
Критик
Member

Откуда: Москва / Калуга
Сообщений: 33989
Блог
Maxx
ну организация процесса разработки ето совершенно другая история... и вообще исходные коды нужно хранить в системе контроля версий ,а не в студиии по живому "резать" ,ИМХО


Все коды в TFS, редактируется в студии...
14 окт 14, 13:52    [16701873]     Ответить | Цитировать Сообщить модератору
 Re: Вопросы по SQL-проектам в студии (VS)  [new]
Критик
Member

Откуда: Москва / Калуга
Сообщений: 33989
Блог
Коллеги, еще вопрос - есть две базы, в обоих есть объекты, использующие linked server`ы друг на друга.
Как все это дело загрузить в VS, чтобы проект прошел этап билда?
14 окт 14, 13:56    [16701895]     Ответить | Цитировать Сообщить модератору
 Re: Вопросы по SQL-проектам в студии (VS)  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
Критик
Все коды в TFS, редактируется в студии...

пишите руками все команды и не будете мучаться по факту
14 окт 14, 14:20    [16702056]     Ответить | Цитировать Сообщить модератору
 Re: Вопросы по SQL-проектам в студии (VS)  [new]
Программист 3 поколения
Member

Откуда:
Сообщений: 103
Критик,

set identity_insert dbo.table_name on/off
14 окт 14, 16:40    [16703055]     Ответить | Цитировать Сообщить модератору
 Re: Вопросы по SQL-проектам в студии (VS)  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37069
Программист 3 поколения
Критик,

set identity_insert dbo.table_name on/off
Спасибо, кеп.
14 окт 14, 16:41    [16703057]     Ответить | Цитировать Сообщить модератору
 Re: Вопросы по SQL-проектам в студии (VS)  [new]
Crimean
Member

Откуда:
Сообщений: 13148
бага, похоже. и не одна она там. в 12 студии подобное (правда без in-memory) проходит "правильно" и без вопросов. но другие приколы есть.
14 окт 14, 18:31    [16703651]     Ответить | Цитировать Сообщить модератору
 Re: Вопросы по SQL-проектам в студии (VS)  [new]
a_voronin
Member

Откуда: Москва
Сообщений: 4804
А чего вы хотели, студия 2013, а SQL 2014 (in-memory).

Кстати, при bucket_count = 10000 не проще ли на C# или C++ задачу решить?
14 окт 14, 19:40    [16703982]     Ответить | Цитировать Сообщить модератору
 Re: Вопросы по SQL-проектам в студии (VS)  [new]
Критик
Member

Откуда: Москва / Калуга
Сообщений: 33989
Блог
a_voronin
А чего вы хотели, студия 2013, а SQL 2014 (in-memory).

MS SQL 2014 поддерживает, можно выбрать эту редакцию в качестве "цели".


a_voronin
Кстати, при bucket_count = 10000 не проще ли на C# или C++ задачу решить?

Это просто пример.
14 окт 14, 21:19    [16704407]     Ответить | Цитировать Сообщить модератору
 Re: Вопросы по SQL-проектам в студии (VS)  [new]
Критик
Member

Откуда: Москва / Калуга
Сообщений: 33989
Блог
А вот это как-нибудь решается?

Критик
Коллеги, еще вопрос - есть две базы, в обоих есть объекты, использующие linked server`ы друг на друга.
Как все это дело загрузить в VS, чтобы проект прошел этап билда?


Сейчас можно указать ссылку на другой проект в решении, тогда нужно сначала сделать билд этого другого проекта, а чтобы это сделать, нужна ссылка на первый проект... В результате мне нужна двунаправленная ссылка между проектами (исторически сложилась такая структура, и ее быстро не поменяешь). Что можно предложить в этом случае?
14 окт 14, 21:27    [16704433]     Ответить | Цитировать Сообщить модератору
 Re: Вопросы по SQL-проектам в студии (VS)  [new]
Критик
Member

Откуда: Москва / Калуга
Сообщений: 33989
Блог
Коллеги,

Вопрос тем, кто использует релизную политику в вашей БД в VS/TFS:

как отличать релизные изменения от просто check-in`ов?

или разработчики не должны делать check-in до тех пор, пока изменения не будут признаны релизными?
19 ноя 14, 17:30    [16873513]     Ответить | Цитировать Сообщить модератору
 Re: Вопросы по SQL-проектам в студии (VS)  [new]
Crimean
Member

Откуда:
Сообщений: 13148
Критик,

а бранчи уже недостаточно православны?
19 ноя 14, 17:34    [16873544]     Ответить | Цитировать Сообщить модератору
 Re: Вопросы по SQL-проектам в студии (VS)  [new]
Lepsik
Member

Откуда: glubinka
Сообщений: 4256
для этого делаются бранчи:

-- version 10
--- accepted
--- tested
-- main
-- accepted
-- released

a еше девелопер имеет свой бранч где тестирует свой код
19 ноя 14, 17:41    [16873606]     Ответить | Цитировать Сообщить модератору
 Re: Вопросы по SQL-проектам в студии (VS)  [new]
Критик
Member

Откуда: Москва / Калуга
Сообщений: 33989
Блог
ага, спасибо!
19 ноя 14, 20:04    [16874299]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить