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.

Share this post