SelectLine Datenbank-Tools

Tools

Verwaltung der Gerätenummern

Verschiedene Tools zur Bearbeitung der Gerätenummern finden sich unter diesem Link: odin/kd
Folgende Tools stehen zur Verfügung:
ACHTUNG: bei Verwendung mehrerer Scripts gleichzeitig sollte unbedingt nur in einem Mandant gearbeitet werden, da sonst Session-bezogene Konflikte entstehen [BUG].

(Abgelegt sind die Source-Dateien unter: \\odin\root\var\www\kd)

HINWEIS: nur berechtigte Rechner können schreibende Scripts benutzen.

Automatische Umlagerungsbelege

Automatische Erstellung von Umlagerungsbelegen für unverbrauchtes Material von Werkaufträgen. Das Material wird automatisch ins Ursprungslager zurückgebucht.
Dazu gehe man im SelectLine:
1. zum abgeschlossenen Werkauftrag
2. Eigene Daten
3. Makros
4. electronic
5. SLweb electronic
6. (im Browser wird der Auftrag analysiert)
7. Mandant auswählen
8. Bestände kontrollieren und drücken auf "Korrigieren"

(Abgelegt sind die Source-Dateien unter: \\hapi\wwwRoot\SLweb)

Scripts

Durchsuchen einer Datenbank

Mit diesem Script lassen sich sämtliche Tabellen einer Datenbank durchsuchen. Es wird nur nach Zeichenketten gesucht, nicht nach Zahlen.
Bitte nur im Notfall verwenden.
declare
	@sql varchar(8000),
	@tbl varchar(255),
	@col varchar(255),
	@data varchar(50)

set @data = 'Beliebiger Suchbegriff'

declare cur_tbl cursor for
      select a.name, b.name
	  from sysobjects a, syscolumns b, systypes c
	  where a.id = b.id
		  and a.type = 'U'
		  and c.xtype = b.xtype
		  and c.name
				in ( 'varchar', 'nvarchar', 'text', 'ntext' )
open cur_tbl
fetch next from cur_tbl into @tbl, @col
while @@fetch_status = 0
begin
      set @sql = '
                        if exists (select * from ['
								+ @tbl + '] where convert( varchar(255), ['
								+ @col + '] ) like ''%'
								+ @data + '%'')
                              select tbl='''
								+ @tbl + ''', col='''
								+ @col + ''', ['
								+ @col + '], * from ['
								+ @tbl + '] where convert( varchar(255), ['
								+ @col + '] ) like ''%'
								+ @data + '%''
                        '
      exec(@sql)

      fetch next from cur_tbl into @tbl, @col
end
close cur_tbl
deallocate cur_tbl

Vergleich zweier Tabellen

Listet Unterschiede zweier Tabellen (die den gleichen Primary-Key haben).
SELECT MIN(TableName) as TableName, ID, COL1, COL2, COL3 ...
FROM
(
  SELECT 'Table A' as TableName, A.ID, A.COL1, A.COL2, A.COL3, ...
  FROM A
  UNION ALL
  SELECT 'Table B' as TableName, B.ID, B.COL1, B.COl2, B.COL3, ...
  FROM B
) tmp
GROUP BY ID, COL1, COL2, COL3 ...
HAVING COUNT(*) = 1
ORDER BY ID