IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: Increments in SQL DB

Aktivity
Avatar
Franc Beran
Člen
Avatar
Franc Beran:21.10.2015 8:31

Zdravím všechny. Vytvořil jsem si již pár SQL DB a využívám je v C#. Databáze vytvářím buď v SQL Management studiu nebo v mém C# programu, kde po vytvoření tabulky do ní exportuji Excel soubor. Ať ve studiu nebo v programu dávám ID v tomto tvaru:
ID int IDENTITY(1,1) PRIMARY KEY
Nevím proč se mi pak dějí incrementy po 1000. V čem je chyba?

 
Odpovědět
21.10.2015 8:31
Avatar
shaman
Člen
Avatar
Odpovídá na Franc Beran
shaman:21.10.2015 11:10

Syntax je spravna a nemalo by to robit.
Pouzivas SQL 2012?
Incrementuje to po 1000 stale alebo len po restarte?

Nahoru Odpovědět
21.10.2015 11:10
try {...} catch (Exception ignored) { echo " ¯\_(ツ)_/¯ "; }
Avatar
Milan Křepelka
Tvůrce
Avatar
Milan Křepelka:21.10.2015 12:26

Co si ukazuje MS po vytvoření DB na tom sloupci. Jaký je tam identity ?

 
Nahoru Odpovědět
21.10.2015 12:26
Avatar
Franc Beran
Člen
Avatar
Odpovídá na shaman
Franc Beran:22.10.2015 8:47

Používám MS SQL 2012, a vesele to přidává pořád po 1000. Řešil jsem to přesypáním tabulky do jiné, kterou jsem pak přejmenoval, tam jsou increments po 1, ale pak se to třeba po dvou dnech opět přihodí. (???)

 
Nahoru Odpovědět
22.10.2015 8:47
Avatar
Franc Beran
Člen
Avatar
Odpovídá na Milan Křepelka
Franc Beran:22.10.2015 9:10

Když začínám psát data do tabulky inkrementuje to po 1. Ale potom přidám záznam třeba druhý den a najednou je tam skok. Tady je příklad mojí tabulky:
string SP_create_query = " (ID int IDENTITY(1,1) PRIMARY KEY,"
+ "Datum nvarchar(50) NULL, "
+ "Balance nvarchar(50) NULL, "
+ "Charge nvarchar(50) NULL, "
+ "Item nvarchar(50) NULL, "
+ "Notes nvarchar(MAX) NULL, "
+ "LifeRest nvarchar(50) NULL, "
+ "ChargeRest nvarchar(50) NULL, "
+ "ChargeIndex int NULL); ";
Zkuste se nevyděsit toho, že u určitých typově jasných položek jsem se uchýlil ke stringu. Měl jsem potíže s UPDATE a INSERT tak to za mne vyřešil C#. Tímto bych taky požádal o jasnou praxi se zadáváním typu DATETIME a INT a FLOAT v těchto rutinách.

 
Nahoru Odpovědět
22.10.2015 9:10
Avatar
Milan Křepelka
Tvůrce
Avatar
Milan Křepelka:22.10.2015 9:51

Je to zajímavé. Jestli chceš, pošli mi prázdný backup, zkusím jestli to je databází nebo serverem. Teďka mám dovolenou a doma nemám velký server, ani 2012, ale v pondělí bych se na to zkusil kouknout.

Editováno 22.10.2015 9:52
 
Nahoru Odpovědět
22.10.2015 9:51
Avatar
shaman
Člen
Avatar
Odpovídá na Franc Beran
shaman:22.10.2015 11:16

Takze nasledujuci den, ked sa ti PC restartuje a s nim aj SQL, tak ti to prida 1000. Je to znamy bug. Chyba je teda v SQL.
Tu je nejaky tip na riesenie ale neviem ci to funguje: http://stackoverflow.com/…ver-database

Nahoru Odpovědět
22.10.2015 11:16
try {...} catch (Exception ignored) { echo " ¯\_(ツ)_/¯ "; }
Avatar
Milan Křepelka
Tvůrce
Avatar
Odpovídá na shaman
Milan Křepelka:22.10.2015 11:22

Heh, tak to je fakt úlet.

 
Nahoru Odpovědět
22.10.2015 11:22
Avatar
Franc Beran
Člen
Avatar
Odpovídá na Milan Křepelka
Franc Beran:24.10.2015 6:14

Nejspíš to dělá Server 2012. Našel jsem toto, udělal to a dávám to dál:
http://stackoverflow.com/…ver-database
Přesypu ty svoje DB a uvidím, teď mi to leze aspoň po 1. 6003, 6004, 6005 atd.

 
Nahoru Odpovědět
24.10.2015 6:14
Avatar
Milan Křepelka
Tvůrce
Avatar
Odpovídá na Franc Beran
Milan Křepelka:24.10.2015 10:06

J už ti to sem poslal shaman. Je to opravdu laciný bug. V těch komentářích to popisujou v čem je problém.

 
Nahoru Odpovědět
24.10.2015 10:06
Avatar
Franc Beran
Člen
Avatar
Odpovídá na Milan Křepelka
Franc Beran:25.10.2015 7:36

Tady jsem našel asi konečný řešení:
http://www.codeproject.com/…alue-Jump-Is
V management studiu jsem přesypal tabulky a inkrement se chová jak má. Je to tím severem 2012 a přidáním "-t272" do startup parametrů serveru. Jinak já používám localdb.

 
Nahoru Odpovědět
25.10.2015 7:36
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 11 zpráv z 11.