SQL Sammlung, SQL Quick Reference
Instanz löschen
Datenbank Instanz löschen:
1. Instanz beenden (der kleine Dienstmanager) 2. RegEdit. Dann Local Machine → Software → Microsoft → Microsoft SQL Server , hier die instanz komplett löschen 3. Ins Verzeichnis programme\microsoft SQL Server\ und hier das Verzeichnis löschen
osql
osql -S RECHNERNAME\ETOPE7_DB -E -q
Backup Database
osql -S RECHNERNAME\ETOPE7_DB -E -q "BACK UP DATABASE [etopedb] TO DISK = N'C:\Programme\Microsoft SQL Server\MSSQL$ETOPE7_DB\Data\backupetopedb.bak' WITH NOFORMAT, NOINIT, NAME = N'etopedb-Vollständig Datenbank Sichern' , SKIP, NOREWIND, NOUNLOAD, STATS = 10"
Restore Database
osql -S RECHNERNAME\ETOPE7_DB -E -q "RESTORE DATABASE [etopedb] FROM DISK = N'C:\Programme\Microsoft SQL Server\MSSQL$ETOPE7_DB\Data\backupetopedb.bak' WITH FILE = 2, NOUNLOAD, STATS = 10"
Log File verkleinern
BACKUP LOG etopedb WITH TRUNCATE_ONLY DBCC SHRINKFILE (etopedb_LOG, 10)
Index erstellen
CREATE INDEX lager_speed ON lager (folder,username)
Feld anfügen
ALTER TABLE transaktionen_kauf ADD rechnungsnrdatum DATETIME
TurboDB:
ALTER TABLE transaktionen_kauf ADD rechnungsnrdatum Date Time
Feldgrösse ändern
alter table transaktionen alter column ItemID varchar(55); alter table transaktionen_arc alter column ItemID varchar(55)
alter table ueberwachung alter column Kategorie varchar(40)
Suchen und Ersetzen
update lager_u Set planung =replace (planung, '(NOTEBOOK)', '(DESKTOP)')
Kategorien Duplikate löschen
delete from kats where id in (select t2.id from kats t1 inner join kats t2 on t1.id>t2.id where t2.stream LIKE t1.stream)
löscht doppelte Kategorien
Einstellungen Grösse/Position Hauptformular löschen
DELETE FROM listersetup WHERE ([key] LIKE '%haupt%')
Spalteneinrichtung löschen
DELETE FROM kats WHERE kategorie LIKE '%_transcolumns'
Lagersplitter wiederherstellen
update listersetup set value ='200' where [key] like 'lagersplitter'
Trigger
Syntax:
CREATE TRIGGER triggername (on | AFTER | INSTEAD OF) tabellenname [WITH ENCRYPTION] [NOT FOR REPLICATION] FOR ( Insert, Update, Delete) AS IF Update (spaltenname) [OR|AND Update (spaltenname)] SQL Anweisungen.... Beispiel:
Create Trigger renummer on transaktionen AFTER UPDATE AS SET NOCOUNT ON IF UPDATE (rechnungsnr) Begin
Update transaktionen set marker=4
From inserted i
INNER JOIN transaktionen t ON t.rechnungsnr=i.rechnungsnr
where i.rechnungsnr >0
Update transaktionen set marker = NULL From inserted i INNER JOIN transaktionen t ON t.rechnungsnr=i.rechnungsnr where i.rechnungsnr =0 END mit Variablen:
CREATE Trigger bestellung on tblBestellungenPositionen AFTER INSERT AS SET NOCOUNT ON Declare @artikel int Declare @menge int SET @artikel = (Select BestPArtikel FROM inserted) SET @menge = (Select BestPMenge FROM inserted) Update tblArtikel SET ArtMengeBestellt = ArtMengeBestellt + @menge WHERE ArtNr = @artikel
Trigger abrufen
SELECT * FROM sysobjects WHERE (xtype = 'TR')