MS SQL delete a insert
MS SQL je divnej
[tak, to to schytám]. Přepisoval jsem něco do Entity Frameworku pro Firebird ze samples, kde se samozřejmě pracuje s MS SQL. Ačkoli specifikace SQL (SQL’92) hovoří jasně o tom, jak má vypadat insert a delete statement, MS SQL musí mít něco extra (a určitě to má super důvod).
Insert je definován jako “INSERT INTO <table name> <insert columns and source>” MS SQL vesele pobere i verzi bez “INTO”. Podobně jako delete (s podmínkou) je definován “DELETE FROM <table name> [ WHERE <search condition> ]” MS SQL opět vesele pobere i verzi bez “FROM”.
Technicky vzato to může být jedno, každá DB má své nuance. Nicméně tyto základní věci by podle mě, mohly být stejné – už jen aby to každý dokázal lehce přečíst, vzít a použít jinde. Ale třeba jsem moc upjatý …



There's 7 Comments So Far
March 28th, 2008 at 22:19
No jo, ale na druhou stranu horší by bylo, kdyby MS SQL uměl jen atypickou variantu bez INTO nebo FROM.
March 28th, 2008 at 23:16
Moc nerozumim, co je na tom spatne? SQL 92 je nedostacujici, vsechny DB, ktere za neco stoji ma sve upravy ( urcite ne nahodou ), takze kdyz se na to tak kouknu, tak “divne” jsou jsou vicemene vsechny xySQL jazyky
March 28th, 2008 at 23:31
2 Tomáš Herceg> Mne uz by to bylo jedno.
2 Jakublog> No to je dobre, ze tomu nerozumis. Pac to vynechani slova opravdu nedava smysl.
To ze je nebo neni SQL’92 nedostacujici zde nema vyznam. Totiz tohle nikde nic neomezuje – je to uplne bazova vec u toho statementu. Dalsi rozsireni syntaxe (nebo spise funkcinality s tim spojene) ma vyznam pokud to prinese neco co jinak udelat nejde.
March 29th, 2008 at 08:50
vzhledem k tomu, ze u deleteu stejne nemuzete specifikovat sloupce mi tam pripada FROM navic, takze jsem si uz davno zvykl na variantu bez nej, ale o insertu bez INTO jsem nevedel, zajimave…
March 29th, 2008 at 10:14
Divnost je subjektivní. Já např. začínal na MSSQL, divný mi přišel protože jsem do tý doby byl zvyklý na souborový databáze.Pak když jsem větší projekt portoval na Oracle říkal jsem si, že ten Oracle je divnej. Postupem času už mi divný nepřijde a mnoha ohledech mám pořád pocit, že je mnohem lepší než MSSQL.Po několika letech jsem teď použil na nějakém projektu i Firebird. A to jsem si teprve říkal, že je divný jazyk. Takový slabý odvar Oracle. Syntaxe evidentně vykradená (což je samozřejmě dobře), ale každý druhý klíčový slovo není podporovaný. A nebo je podpora až v nejnovější beta verzi. Obávám se, že pocit z divnosti Firebirdu mne ale asi hned tak neopustí, ale třeba za 10 let jo
March 29th, 2008 at 12:24
2 rob> Firebird a vykradena syntaxe? Co se tyka primo SQL, zadny proceduralni rozsireni, tak je to z 99% pure SQL. Proceduralni rozsireni je takovej SQL-Pascal. Nicmene zrovna FB ma v zakladnich prikazech minimum vlastnich hacku, takze zadny magicky konstrukce. Ale pokud si zacal na MSSQL, tak ti to jasne musi pripadat divny, to chapu.
November 26th, 2008 at 20:26
Ja myslim, ze DELETE bez je tam protoze:DELETE neco OUTPUT.DELETED.name INTO blablaprostě se maže buď z něčeho nebo do někam. A klauzele DELETE neco; je verze mazání do někam bez uvedení kam, tedy do nikam.:-)
Share your thoughts, leave a comment!