Dotazy do MSSQL

Dotazy do MSSQL:

  • získání tabulky se schématem databáze
  • změna datového typu sloupce pro výsledek dotazu
  • přidání sloupce, který čísluje výsledné řádky
  • dotaz, který vybere řádky na určitém intervalu výsledku
  • získání ID posledního insertu

Příkazy na:

  • změnu kódování databáze MSSQL
  • obnovení databáze z .bak na .mdf

Získání seznamu tabulek a jejich sloupců včetně informací o datových typech sloupců, pořadí v tabulce atd.

SELECT * FROM INFORMATION_SCHEMA.COLUMNS;

Následující dotaz změní datový typ sloupce při návratu dotazu. Lze tak například změnit datový typ ntext na text. Využitelné při použití PHP a MSSQL, kdy může nastat problém při zpracovávání sloupců s datovým typem ntext.

CAST and CONVERT (Transact-SQL)

SELECT CAST (popis AS TEXT) AS popis FROM Tabulka1

Přidání sloupce, který očísluje výsledné řádky dotazu.

ROW_NUMBER (Transact-SQL)

SELECT id,(ROW_NUMBER() OVER (ORDER BY id)) AS cislaradku
  FROM Tabulka

Rozšíření předchozího dotazu. Následující dotaz nejprve provede výběr z tabulky „Tabulka“ a z výsledku (v „pomocna_tabulka“) poté vybere  prvních 10 řádků. Podobně lze nahradit příkaz LIMIT {x},{y} známý z databáze MySQL.

SELECT * FROM(SELECT id,(ROW_NUMBER() over (order by id)) as cislaradku 
FROM Tabulka ) AS pomocna_tabulka WHERE cislaradku > 0 AND cislaradku <= 10

Získání ID posledního insertu. Podrobněji na HAVIT Knowledge Base v článku @@IDENTITY vs. SCOPE_IDENTITY()

SCOPE_IDENTITY (Transact-SQL)

SELECT SCOPE_IDENTITY() /*vrací poslední id právě z tabulky,
na kterou byl volán poslední insert*/

@@IDENTITY (Transact-SQL)

SELECT @@IDENTITY  /*pokud je na tabulku posledního insertu
navázán například trigger, vrací se jeho id*/

Změna kódování databáze MS SQL. Před změnou jsou všichni uživatelé odpojeni (mimo aktuálního uživatele, který posílá tento příkaz) a novým uživatelům není povoleno se připojovat do doby, než bude provedena změna kódování.

ALTER DATABASE "{jmeno_databaze}"
SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
GO
alter database "{jmeno_databaze}" collate Czech_CI_AS
GO
ALTER DATABASE "{jmeno_databaze}" SET MULTI_USER;

Obnovení databáze z .bak na .mdf. Použití ve Visual Studiu při stažení databáze ze serveru.

RESTORE DATABASE db002
FROM DISK =
'I:\WORKSAPCE\Project1\App_Data\db002_634430588631360016.bak'
WITH REPLACE, MOVE 'db002' TO
'I:\WORKSAPCE\Project1\App_Data\db002.mdf',
MOVE 'db002_Log' TO
'I:\WORKSAPCE\Project1\App_Data\db002_log.ldf', STATS


Příspěvek byl publikován v rubrice Nezařazené se štítky , . Můžete si uložit jeho odkaz mezi své oblíbené záložky.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *

Tato stránka používá Akismet k omezení spamu. Podívejte se, jak vaše data z komentářů zpracováváme..