locked
oszlopsorrend (ordinal position) megváltoztatása RRS feed

  • Question

  • Sziasztok!

     

    Hogyan lehet utólag megváltoztatni egy tábla adott oszlopának sorrendjét sql-szkriptből?

     

    SzL

     

     

     

    Tuesday, November 13, 2007 12:01 PM

Answers

  • viszont nem kell megkerned a usert, hogy SSMSvel csinalja meg, Te magad megcsinalos a SSMS-dben es keres tole a scriptet (fent az ablak tetejn van ra egy gomb ami legyartja a scriptet, amit a ssms le fog futtatni)

    aztan ezt a scriptet kell berakni a verzio valto scriptbe.

     

    persze ha nagy a tabla az gaz, mert sok hely kell majd neki.

    (indexek, trigerrek stb mindet megcsinalja a SSMS scriptje)

    Wednesday, November 14, 2007 3:43 PM

All replies

  • Ha jól tudom sehogy. GUI-ból lehet, de ő is új táblát generál a háttérben. Scriptből szerintem új táblába tudod maximum átrakni őket a megfelelő sorrendben. De sose értettem miért is szükséges ez. Smile

    Tuesday, November 13, 2007 12:14 PM
  • Nem szükséges, csak zavaró, ha a logikailag összetartozó oszlopok szanaszét vannak a táblában. Gondolom mindenkinél gyakorlat, hogy utólag rak be egy kifelejtett, vagy igényként felmerült oszlopot.

     

    Az ssms-sel a helyére teszed te is, ugye? Csak sajnos egy verzióváltó szkript lefutása után mégsem kérhetem meg a felhasználót, hogy indítsa el az ssms-t, oszt húzogassa a helyére az újonnan felvett oszlopokat.

     

    Amúgy hogy néz ki egy oszlopátrendezés ssms-sel? Expressem van, és nem találok eszközt benne, amivel nyomon lehetne követni. Átnevezi a régi táblát, legenerálja újra a kívánt oszlopsorrenddel, majd átpakolja a régiből az adatokat?

     

     

    Amúgy ha nem érted még mindig, akkor megbeszélhetünk egy időpontot, és ingyen szétdobálom, természetesen véletlenszerűen a táblád oszlopait. (Remélem van olyan adatbázis, amit te fejlesztesz vagy felügyelsz!) Gondolom be fogsz szarni a gyönyörtől a szanaszét barmolt tábláidtól!  

    Pedig csak az oszlopsorrendek fognak változni, de azok nagyon!

     

    SzL

     

    Tuesday, November 13, 2007 12:53 PM
  • Új oszlopok hozzáadása után nyilván kellemetlen, de túl sokat nem szoktam hozzáadni utólag, azt a párat meg eddig elviseltem. Smile Ha jól tudom SSMS először készít egy új táblát, átpakolja az adatokat aztán átnevezi a táblákat. De a kollegák majd kijavítanak.

    Tuesday, November 13, 2007 1:04 PM
  • Sajnos nem tudod, a studio is átmásolja.

     

    Wednesday, November 14, 2007 10:05 AM
    Moderator
  • viszont nem kell megkerned a usert, hogy SSMSvel csinalja meg, Te magad megcsinalos a SSMS-dben es keres tole a scriptet (fent az ablak tetejn van ra egy gomb ami legyartja a scriptet, amit a ssms le fog futtatni)

    aztan ezt a scriptet kell berakni a verzio valto scriptbe.

     

    persze ha nagy a tabla az gaz, mert sok hely kell majd neki.

    (indexek, trigerrek stb mindet megcsinalja a SSMS scriptje)

    Wednesday, November 14, 2007 3:43 PM
  • Azért ezzel vigyázzatok. A legtöbb esetben akkor is átmásolja a táblát, ha meg lehetne oldani sima alter-rel is. Én a magam részéről mindig legyártom magam az alter scriptet. (főleg majd ha megy ki éles rendszerre)

     

    Wednesday, November 14, 2007 3:46 PM
    Moderator
  • Yesss!

     

    Úgy látszik nincs sok kedvem a munkához, mert ezt a gombot (Generate Change Script) fel kellett volna fedeznem! Nagyon köszönöm a segítséget!

     

    Persze ahogy Sáfár István írja, azért ezt csak módjával érdemes használni, meg vannak buktatói is. Pl. én előszeretettel titkosítom az SP-ket, triggereket, stb. Ez meg is akasztja a szkriptgenerálást.

     

    Tehát át kell térnem arra a megoldásra, hogy a fejlesztői adatbázisokban semmit nem szabad titkosítani. (Természetesen minden sp, tr, check, view, stb, külön mappában lakik a fájlrendszeren belül, az adott rendszer egyik almappájában.)

     

    +++

     

    Tényleg, már meg akartam kérdezni, hogy ti hogyan küldtök ki egy verzióváltóval egy sp-t, triggert, stb., ami komoly szellemi erőfeszítések  árán jött össze ? Lényeg, hogy nem akarjátok, hogy a juzer vagy mások belelássanak vagy lenyúlják a kódot.

     

    Bár arra is gondoltam, hogy nézzen bele akárki, nem hiszem, hogy ettől üzleti hátrányba kerülnék. Én biztos nem. Amúgy is e felé tart a világ, de valahogy belém lett kódolva a régmúlt hozdékaként, hogy a forrást azt biza nagyon védeni kell mások elöl. Na mindegy. Lényeg, hogy kíváncsi vagyok, hogy mások hogy kezelik ezt a kérdést, és ha védik a T-SQL-es kódjaikat, akkor ezt hogy oldják meg verzióváltáskor.

     

    SzL

    Wednesday, November 14, 2007 5:29 PM