, , ,

Navicat für den MS SQL Server

Navicat kann und wird auch in Zukunft leider keine ER-Diagramme erstellen können, zumind. gibt es bisher keine Timeline dafür.

Was ich aber extrem genial finde, ist die Tatsache das es endlich den MS SQL Server unterstützen wird – wenn auch erst im 3-4 Quartal 2010.

SET DEFAULT II

Hier mal eine einfache Version mit purem T-SQL zum setzen von DEFAUL-Values eines Feldes.

DECLARE
  @sql AS nvarchar(1000)

--- isActive = 1
IF NOT EXISTS (SELECT * FROM syscolumns WHERE id = (SELECT id FROM sysobjects WHERE name = 'sys_User') AND name = 'isActive')
BEGIN
  print 'create field with defaults';
  SET @sql = 'ALTER TABLE sys_User ADD isActive BIT DEFAULT (1) NULL';
  EXEC sp_executesql @sql;
END ELSE
  BEGIN
    IF (SELECT cdefault FROM syscolumns WHERE id = (SELECT id FROM sysobjects WHERE name = 'sys_User') AND name = 'isActive') > 0
      BEGIN
        print 'drop contraint';
        SET @sql = 'ALTER TABLE sys_User DROP CONSTRAINT ' +(SELECT name FROM sysobjects WHERE id = (SELECT cdefault FROM syscolumns WHERE id = (SELECT id FROM sysobjects WHERE name = 'sys_User') AND name = 'isActive'));
        EXEC sp_executesql @sql;
      END
    print 'add contraint'
    SET @sql = 'ALTER TABLE sys_User ADD CONSTRAINT DF_'+(SELECT REPLACE(NEWID(),'-','_')) +' DEFAULT (1) FOR isActive';
    EXEC sp_executesql @sql;
  END
, , , , ,

cAseS

Das Programmierer sehr wohl fantasievoll sind, zeigt deren Schreibeweise. Ich selbst achte darauf das ich zb. Firmennamen immer so schreibe wie sie sich selbst schreiben.

Beim programmieren ist das leider nicht immer so einfach. Da kommt man dann schnell auf Begriffe wie SCREAMING CASES, was so viel wie GROSSBUCHSTABEN bedeutet. Den meisten Programmierer ist es aber gar nicht bewusst wie sehr eine GrossKleinschreibung den Lesefluss beeinflusst. Mann muss nicht mal die weRksTabeN VeRbuCHseLn um unleserlich zu wirken.

Unter Winddows ist man PascalCase gewohnt, also das schreiben des ersten Buchstabens als Grossbuchstabe und in der javaWelt eher das camelCase, also das Schreiben des ersten Buchstabens in kleinbuchstaben. Schwieriger finde ich dann das Schreiben dann in WIKICASE, was bedeutet das man mind 1 Wortkombination haben muss.

Persönlich finde ich es allerdings wichtiger das man als Programmierer sprechende Variablen schreibt und eben kein i oder so zum loopen nimmt, sondern myCategory oder so und myCategories wenn mehrere Elemente enthalten sind. Allerdings sollte man auch nicht übertreiben und alle Datenbanktabellen mit einem tbl-Prefix versehen oder alle Variabelen mit str als String zu deklarieren etc.

Manchmal praktisch finde ich die zusätzliche Trennung_derWorte_mit_Unterstrich, so kann ich mit ListFunktionen einfach auf bestimmte Teile der Variable zugreifen. Nur kann man solche Variablen in einer URL oft nicht so gut erkennen.

Eigentlich ziemlich hässlich finde ich die benennungvonvariableninreinen Kleinbuchstaben, hat allerdings den Vorteil das sie auch unter Linux immer funktionieren und auch in vielen Frameworks benutzt werden.

,

SET DEFAULT

Auch im MS-SQL Server kann man alle Meta-Daten einer Tabelle abfragen – bis auf die DefaultValues.

Hier mein Script, was prüft, ob es die benötigten Felder einer Tabelle gibt und diese auch den gewünschten DefaultValue haben.


  
  
  

  
  SELECT * FROM #local.db.table#



  

      
        
        SELECT name FROM SYSOBJECTS
          WHERE id = (SELECT cdefault FROM SYSCOLUMNS
            WHERE id = (SELECT id FROM SYSOBJECTS WHERE name = '#local.db.table#')
        AND name = '#listFirst(local.myField,'=')#')
      
        
        ALTER TABLE #local.db.table# DROP CONSTRAINT #local.getDefaultName.name#
      
    
      
      ALTER TABLE #local.db.table#
        ADD CONSTRAINT DF_#replace(createUUID(),'-','_','all')#
          DEFAULT (#listLast(local.myField,'=')#) FOR #listFirst(local.myField,'=')#
    

  
  
    ALTER TABLE #local.db.table#
      ADD #listFirst(local.myField,'=')# BIT NULL
        CONSTRAINT DF_#replace(createUUID(),'-','_','all')#
          DEFAULT (#listLast(local.myField,'=')#)
  


Sicherheitshalber noch als Download-Link, weil die Anzeige des Quelltexten leider Müll formatiert.

,

Windows Azure (Cloud) Platform

Alles geht in die Wolke und diesmal – sonst eher verschlafen was neue Technologien betrifft – ist sogar Microsoft gleich zu Begin mit im Boot.

Nachdem, glaub Amazon mit dem S3 das Ganze angezettelt hat, gibt es immer mehr Cloud-Firmen wie RackSpace. Und nun eben auch die Produkte von Microsoft, angefangen mit Windows und dem SQL Server. Schauen wir mal wie sich das so weiter entwickelt. Tönt auf jeden Fall sehr spannend.

Die Jungs von PIXELTEX haben sich bereits darauf spezialisiert und wie in einem früheren Blogeintrag erwähnt, auch schon das API für ColdFusion zugänglich gemacht.

, ,

mySQL auf Mac

Ich finde 3 mySQL-Clients für Mac super. Je nach Anforderung:

1. Sequel Pro
Um einfach und schnell mit Tabellen umgehen zu können. Ausserdem kostenlos.

2. Querious
Wie Sequel Pro, aber mit Import- und Export-Funktionen. So knapp 50CHF.

3. NaviCat
Der Profi unter den mySQL-Clients. Wie Querious plus Backup-Funktionen und erweiterten Import- und Export-Funktionen, sowie einem QueryBuilder. Gibt es auch als kostenlose LITE-Version. Leider wird im NaviCat immer ein neues Fenster/TAB geöffnet, statt in einem Fenster zu bleiben, was das einzige ist das mich stört.

, , ,

SQLyog

Da ich mich ja immer mehr zu Apple hingezogen fühle, möchte ich mich auch vom MS SQL Server verabschieden. Nach allen Vor- und Nachteilen, bleibt da eigentlich nur noch mySQL übrig.

Diesen Black Friday habe ich zum einkaufen einer SQLyog-Lizenz genutzt – 50% Rabatt. Das Tool nutze ich schon eine Weile in der kostenlosen Community-Edition und hätte sie mir eh gekauft, daher war das eine gute Gelegenheit. Deren Aktion läuft übrigens noch bis 1. Dezember.

,

Data Modelling Tools

Eine super Übersicht der besten Datenbank-Tools hat mir Google gefindet.

OK, die meisten ColdFusion-Entwickler (mind. 90%!) wissen nicht was das ist und benennen ihre Datenbanken, Tabellen und Felder ohne zuvor je in ein DB-Handbuch geschaut zu haben. Hier daher ein Buchtipp für SQL-Dummies und solche die es nicht mehr sein möchten.

Nicht das ich der SQL-Profi wäre, aber ein kleines bisschen SQL-Kenntnisse darf man doch auch als ColdFusion-Entwickler erwarten. Sonst heisst es noch: “SQL ist doof, weil es zu langsam und kompliziert ist”. Wie das ja auch dummies Weise Java-Entwickler von ColdFusion behaupten.

Hier meine BestOFs der Datenbank-Dummies:
– tbl_Tablename (wozu braucht es ein “tbl_” vor dem Namen?)
– vw_Viewname (und das?)
– Benutzerübersicht (im Tabellennamen Leer- oder Sonderzeichen einsetzen?)
– UserID, UserName, UserPassword etc. (Wenn die Tabelle eh schon User heisst oder fehlt es nur an Ideen)

PS: Ohne Führerschein kann man planlos quer-feld-ein fahren und sich wundern oder gar ärgern das es einen dabei (durch)schüttelt. Mit Führerschein bleibt man bequem auf der Strasse. Setzt natürlich voraus das man sich mit den Strassenverkehrsregeln (DB-Handbuch) auseinandersetzt ;-(

Und ja, dann kann man natürlich nicht mehr “einfach” diagonal abkürzen. Das ist aber auch nicht schade, sondern für eine geschmeidige (verständliche) Datenbank absolut notwendig! Gerade wenn mehrere Personen daran rumschrauben müssen, aber Disziplin war leider noch nie eine Eigenschaft von ColdFusion-Entwickler.

JDBC-Treiber für SQL Server 2008

Um nicht jedes Mal die Autorisierungsfragen von Microsoft durchlaufen zu müssen habe ich in meinem Download-Verzeichnis den akt. JDBC-Treiber für den SQL Server 2008 abgelegt.

,

Eclipse SQL Explorer

Dieses PlugIn lässt sich zwar nicht immer installieren, funktioniert aber dann recht gut.