Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem Problémy s identity sloupci - merge replikace

Zdravím, mám jeden problém. Jedná se o komunikaci sql server 2000 oproti sql server 3.0 ce na PDA.
Mám tabulku se sloupcem identity který je nastavený na not for replication.
K zakládání nových řádku dochází pouze na PDA, takže sice tam mám duplicitní identity řádky, ale vždy jeden stejný od každého PDA, to by nevadilo, je to dále filtrované HOST_NAME().
Problém je ale pokud budu muset natáhnout do PDA komplet celou databázi znova, natáhnu sice všechny data ale tím se mi nastaví sloupce identity znovu na hodnotu 1, tím budu mít v PDA duplicitní identity řádky což by fakt nešlo.
Cosi jsem našel že se dá nová hodnota od které má sloupec identity začít nastavit pomocí : DBCC CHECKIDENT (<TABLE NAME>, 'reseed').
Jak ale nastavit při znovuvytvoření databaze u subscribera sloupce identity tak aby nezačínali jedničkou ? Poradí někdo díky.

Předmět Autor Datum
Nebylo by vhodne zmenit ten sloupec na "neidentity" a vytvare si jednoznacny klic, treba podle DateS…
Jan Fiala 23.07.2007 17:49
Jan Fiala
No máš pravdu sloupec identity tam nepotřebuju. Ale jelikož potřebuju spojit dvě tabulky podle jedno…
Williem 24.07.2007 09:45
Williem
Přimo ve visual basicu to nejde generovat, tak si založím další tabulku která bude mít pouze jeden s…
Williem 24.07.2007 10:26
Williem
Ne to je taky blbost, opět tu tabulku musím replikovat, kvůli tomu kdybych musel natáhnout celou dat…
Williem 24.07.2007 10:39
Williem
(Máme tu i tlačítko odpovědět a když se zaregistruješ, můžeš příspěvek i upravovat ;-))
angel333 24.07.2007 11:34
angel333
A nemá náhodou SQL server funkci, která ti UIN vrati, bez toho, aby musela byt automaticky ukladana…
Jan Fiala 24.07.2007 11:38
Jan Fiala
No tak jak jsem říkal že přímo visual basic sám osobě nedokáže generovat uniqueidentifier tak to jse…
Williem 24.07.2007 12:11
Williem
Dotaz do tabulky, zda tam existuje je zbytecny. Proto se to jmenuje GUID (Global unique identifier)
Jan Fiala 24.07.2007 12:42
Jan Fiala
Dotaz do tabulky, zda tam existuje je zbytecny. Proto se to jmenuje GUID (Global unique identifier)…
Williem 24.07.2007 13:03
Williem
ne
Jan Fiala 24.07.2007 13:35
Jan Fiala
Prosím tě ještě jeden dotaz ohledně toho uniqueidentifieru. Jestli jsem to správně pochopil tak typ…
Williem 26.07.2007 09:51
Williem
GUID je unikatni celosvetove. Sklada se z vic informaci - MAC sitove karty, cas, informace o PC. Tak… poslední
Jan Fiala 26.07.2007 12:56
Jan Fiala

No máš pravdu sloupec identity tam nepotřebuju. Ale jelikož potřebuju spojit dvě tabulky podle jednoho klíče potřebuju teda nějaký společný sloupec, první mě napadlo uniqueidentifier ale v tabulce zase kvůli replikaci už jeden takový sloupec je a druhý být nemůže, pak mě napadlo teda now.Ticks, te bych použil v obou tabulkách a měl bych je tímto jedinečným klíčem spojené. Co když se ale u PDA přenastaví čas a dojde k duplicitě sloupce. No nevím, co myslíš.

Přimo ve visual basicu to nejde generovat, tak si založím další tabulku která bude mít pouze jeden sloupec uniqueidentifier, takže když přidám řádek do tabulky vygeneruje se mi sloupec typu uniqueidentifier a ten použiju pro spojení těch dvou tabulek. To by mohlo jít ne ?

No tak jak jsem říkal že přímo visual basic sám osobě nedokáže generovat uniqueidentifier tak to jsem se spletl, jde to. Stačí zapsat Private gZavoz As Guid = System.Guid.NewGuid. Pak stačí maximálně jeden dotaz na tabulku do které chci zapsat jestli tam už takový uniqueidentifier neexistuje a pokud ne pak ho uložím a tím by měl být snad problém vyřešen.
Díky za pomoc.

Prosím tě ještě jeden dotaz ohledně toho uniqueidentifieru. Jestli jsem to správně pochopil tak typ Guid zajištuje unikátní hodnoty sloupce v rámci databáze. Mám teda Pull merge replikaci z PDA do Sql server 2000. Pak mám Push merge replikaci z replikačního agenta (sql server 2000) na server (sql server 2000). Dejme tomu že do tabulky kterou replikuju budu zapisovat jak na PDA tak na Serveru nové řádky dat. Ani v tomto případě nemůže vzniknout duplicitní Guid který nemá parametr Rowguidcol na yes, když bude třeba na Serveru založený řádek s Guidem stejným jaký je na PDA ,ale kvůli tomu že uživatel ještě neodreplikovat data z PDA na Server, sql server to nebude vědět. Díky za odpověď.

GUID je unikatni celosvetove. Sklada se z vic informaci - MAC sitove karty, cas, informace o PC. Takze pravdepodobnost, ze se potkaji 2 GUID je hodne nulova.
GUID se pouziva na tridy v registru (koukni na klic Classes), na identifikaci hardware a urcite by to delalo problemy, kdyby se potkavaly ID jednotlivych vyrobcu...

Zpět do poradny Odpovědět na původní otázku Nahoru