Pokazywanie postów oznaczonych etykietą SQL. Pokaż wszystkie posty
Pokazywanie postów oznaczonych etykietą SQL. Pokaż wszystkie posty

poniedziałek, 4 kwietnia 2011

MySQL i MSSQL Multi Insert

W MySQL realizację wielu insertów (multi insert) wykonujemy w sposób:

insert into `mytable` (fname, lname, address) values
("john", "doe", "123 some st"),
("jane", "doe", "456 other st")


W MSSQL-u już tak pięknie nie jest, ale możemy to samo uzyskać w ten sposób:

insert into `mytable` (fname, lname, address)
Select 'john','doe','123 some st' union all
Select 'jane','doe','456 other st';

MSSQL jak sprawdzić czy tabela istnieje?

Sprawdzenie istnienia tabeli w MSSQL-u jest troszkę bardziej skomplikowane niż w MySQL. W MySQL można wykonywać skrypty bezpośrednio sprawdzając czy tabel istnieje np:
DROP TABLE IF EXISTS table_name;
W MSSQL możemy to zrobić w ten sposób:
IF EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE table_name = 'table_name')
DROP TABLE 'table_name'
Innym rozwiązaniem jest sprawdzenie czy tabela istnieje w obiektach systemowych
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = object_id(N'[dbo].[table_name]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
DROP TABLE 'table_name'
Jeszcze innym sposobem jest sprawdzenie czy istnieje obiekt, w tym przypadku nasza tabela.
IF OBJECT_ID('[dbo].[table_name]') IS NOT NULL
DROP TABLE 'table_name'