Mohu logicky pořadí sloupců v tabulce?

hlasů
77

Pokud jsem přidat sloupec do tabulky v Microsoft SQL Server, můžu kontrolovat, kde se logicky zobrazuje sloupec v dotazech?

Nechci, aby si s fyzickým uspořádáním sloupů na disku, ale rád bych se logicky skupina sloupců dohromady pokud je to možné, takže nástroje jako SQL Server Management Studio vypsat obsah tabulky pohodlným způsobem.

Vím, že to může udělat pomocí SQL Management Studio tím, že jde do svého režimu „design“ pro tabulky a tažením pořadí sloupců kolem, ale rád bych, aby bylo možné udělat v surovém SQL, takže mohu provést objednávání scénář z příkazového řádku.

Položena 04/08/2008 v 22:37
zdroj uživatelem
V jiných jazycích...                            


8 odpovědí

hlasů
61

Nemůžete udělat programově (v bezpečným způsobem, který je) bez vytvoření nové tabulky.

Co Enterprise Manager dělá, když se dopustíte reordering je vytvořit novou tabulku, přesunout data a poté odstranit staré tabulky a přejmenujte novou tabulku na existující název.

Chcete-li, sloupce v určitém pořadí / seskupení beze změny jejich fyzické pořadí, můžete vytvořit pohled, který může být cokoliv si přejete.

Odpovězeno 04/08/2008 v 22:54
zdroj uživatelem

hlasů
35

Myslím, že to, co chybí, všichni tady, je to, že i když ne každý se musí vypořádat s 10 let, 20 let, nebo instancí téhož softwarového systému instalovaného v celé zemi a ve světě 1000 je ... ti z nás, že návrh komerčně prodaný software učinit. V důsledku toho jsme se rozšířit systém v průběhu času, rozbalte tabulky přidáním polí jako je zapotřebí nová kapacita, a protože tyto položky jsou označeny všechny patří do existující tabulky, a jako takový, více než deset let roste, roste s tím, pole, atd tabulek .... a pak musel pracovat s těmito tabulkami od návrhu, aby podporovaly, někdy kopání do surových dat / řešení problémů ladit nové funkcionality chyby .... to je neuvěřitelně přitěžující, že nebude mít primární informace, které chcete vidět v průběhu prvního hrstky polí, když můžete mít tabulky s 30-40-50 nebo dokonce 90 polí a ano, v přísně normalizované databáze.

Často jsem si přál, mohl jsem to udělat, pro tento přesný důvod. Ale krátký dělá přesně to, co SQL dělá, Budování vytvořit skript pro novou tabulku tak, jak to chci, psát Vložit do něj, pak klesá veškeré stávající omezení, vztahy, klíče, index, atd atd atd z existující tabulky a přejmenování „nový“ stůl zpět na původní název, a pak četl všechny ty klíče, vztahy, index, atd atd ....

Je nejen pracné, časově náročné, ale ... v dalších pět let, bude muset opakovat ....

Je tak blízko, že stojí za to obrovské množství práce, ale jde o to ... nebude to naposled musíme tuto schopnost, protože naše systémy budou i nadále růst, expandovat, a získat pole v wacked objednané řízen potřeba / designové doplňky.

Většina vývojářů myslí z jednoho systémového hlediska, která slouží jediné společnosti, nebo velmi specifické těžké box na trhu.

Dále jen „off-the-shelf“, ale výrazně progresivní designéři a představitelé vývoje v jejich tržní prostor bude mít vždy k řešení tohoto problému, znovu a znovu ..... rád kreativní řešení, pokud někdo má jeden. To by mohlo snadno ušetřit moje firma tucet hodin týdně, ale ne nutnosti posouvání přes, nebo si vzpomenout, kde „to“ pole v tabulce zdroje dat ....

Odpovězeno 01/02/2013 v 01:10
zdroj uživatelem

hlasů
5

Pokud chápu vaši otázku, které chcete změnit, jaké sloupce jsou vráceny jako první, druhý, třetí, atd ve stávajících dotazech, že jo?

Pokud jsou všechny Vaše dotazy jsou psány s SELECT * FROM TABLE- pak se objeví na výstupu, jak jsou stanoveny v SQL.

Jsou-li vaše dotazy psány s SELECT Field1, Field2 FROM TABLE- pak pořadí, které jsou stanoveny v SQL nezáleží.

Odpovězeno 06/08/2008 v 16:42
zdroj uživatelem

hlasů
1
  1. Script vaše stávající tabulky do okna dotazu.
  2. Tento skript spustit proti databázi test (odstranění Použít prohlášení)
  3. Použijte SSMS, aby sloupec změny je nutné
  4. Tlačítko Generování Změnit Script (zcela vlevo a nejspodnější ikonu na buttonbar, ve výchozím nastavení)
  5. Použijte tento skript proti své skutečné tabulky

All skript opravdu je vytvořit druhý tabulky tabulku s požadovanými kolony objednávek, zkopíruje všechna data do ní klesne původní tabulky a přejmenuje sekundární tabulky na jeho místo. To však uložit jej psát sami i když byste měli chtít nasadit skript.

Odpovězeno 08/03/2016 v 14:31
zdroj uživatelem

hlasů
1

Existuje jeden způsob, ale je to pouze dočasně samotném dotazu. Například,

Řekněme máte 5 tabulky. Tabulka je nazývánT_Testing

Jméno, příjmení, PhoneNumber, e-mail, a Member_ID

chcete, aby seznam jejich ID, pak příjmení, pak křestní jméno, pak telefon potom E-mail.

Můžete to udělat podle Select.

Select Member_ID, LastName, FirstName, PhoneNumber, Email
From T_Testing

Jiné, než to, pokud si jen chcete na Příjmení který se zobrazí před první jméno z nějakého důvodu, můžete tak učinit také takto:

Select LastName, *
From T_Testing

Jediná věc, kterou chcete být jisti, že děláte, je, že OrderBy nebo-li potřeba funkce, které mají být označeny jako table.column, pokud se bude používat to, kde nebo OrderBy

Příklad:

Select LastName, *
From T_Testing
Order By T_Testing.LastName Desc

Doufám, že to pomůže, jsem na to přišel, protože jsem potřeboval to sám dělat.

Odpovězeno 06/11/2014 v 18:08
zdroj uživatelem

hlasů
1

To lze provést pomocí SQL, změnou systémové tabulky přímo. Například, podívejte se zde:

Alter table - Přidat nový sloupec v rozmezí

Nicméně bych nedoporučoval hrát se systémovými tabulkami, pokud to není nezbytně nutné.

Odpovězeno 05/10/2008 v 21:34
zdroj uživatelem

hlasů
1

Když ji Management Studio dělá, je to vytvoření dočasné tabulky, kopírování všechno napříč, upustil svůj původní tabulky a přejmenuje dočasnou tabulku. Neexistuje žádný jednoduchý výrok ekvivalentní T-SQL.

Pokud nechcete fantazie dělat to, můžete vždy vytvořit pohled na tabulku s sloupců v pořadí, které chcete používat, a že?

Edit: poražen!

Odpovězeno 04/08/2008 v 23:00
zdroj uživatelem

hlasů
0

Není možné změnit pořadí sloupců bez znovuvytvoření celou tabulku. Máte-li několik instancí jediné databázi, můžete použít SSMS na to (Vyberte tabulku a klepněte na tlačítko „design“).

V případě, že máte příliš mnoho instancí pro manuální proces, měli byste se pokusit tento skript: https://github.com/Epaminaidos/reorder-columns

Odpovězeno 03/09/2016 v 10:56
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more