Beispiel "Abhängige Ausgabe mittels 'CASE'":

SELECT
AAA  as [A],
CASE WHEN len(B) = 0 THEN 0 ELSE 1 END  as [B],
FROM ..

 

Beispiel "Eine Tabellenspalte auf NOT NULL setzen":

ALTER TABLE [dbo].[tblCdbI0] ALTER COLUMN [I56RID] char(32) NOT NULL

Natürlich muss vorab sicher gestellt werden, dass sich in der entsprechenden Spalte kein NULL-Wert befindet!

 

Auto-Increment-Spalte einer Tabelle wieder zurücksetzen:

DBCC CHECKIDENT(‘[DB].[dbo].[tabelle]‘, RESEED, 0)

Hinweis: Bei Anwendung dieses Befehls muss sichergestellt werden, dass es zu keiner Kollision innerhalb der Spalte kommt (doppelte Vergabe derselben Zahl).
Zu beachten sind ebenfalls eventuelle Referenzen auf andre Tabellen.

Beispiel:
SET @Identity= IDENT_CURRENT('db.dbo.mytable')
      IF (@Identity > 1500000)
            DBCC CHECKIDENT ('db.dbo.mytable', RESEED, 0)

 

Beispiel "Eine Tabellenspalte vom Typ XML auf einen vorhandenen Node prüfen":

(MyColumn.exist('/MyNode') = 1)

 

Beispiel "Einen bestimmten Text in der Datenbank suchen":

SELECT
      o.type_desc AS ROUTINE_TYPE
      ,o.[name] AS ROUTINE_NAME
      ,m.definition AS ROUTINE_DEFINITION
FROM
      sys.sql_modules AS m
      INNER JOIN sys.objects AS o ON m.object_id = o.object_id
WHERE
      m.definition LIKE '%Filter%'

 

Beispiel "Suchen nach doppelten Einträgen":

SELECT
      COUNT(*) AS Zähler, Title, TelNr, DateCreated
FROM
      be_Posts
GROUP  BY
      Title, TelNr, DateCreated
HAVING
      ( COUNT(*) > 1 )

 

Beispiel "Suchen nach doppelten Einträgen":

SELECT
      Id, Vorname, Nachname, Vorwahl, Telefon
FROM
      tblData
WHERE EXISTS (
      SELECT Id FROM tblData Dup WHERE tblData.Vorwahl = Dup.Vorwahl AND tblData.Telefon = Dup.Telefon AND tblData.Id <> Dup.Id)
ORDER BY Nachname

 

Beispiel "Löschen von  doppelten Einträgen - Ein Eintrag bleibt erhalten":

CREATE TABLE #TBLResult  (ID int IDENTITY (1, 1) Primary key NOT NULL, G0RID varchar(32) , FraRID varchar(32) )

... insert Data in the table

DELETE FROM
      #TBLResult
WHERE ID in (
     SELECT Dup.ID
     FROM #TBLResult A , #TBLResult Dup
     WHERE A.I0RID = Dup.I0RID AND A.ID < Dup.ID);

 

 

Beispiel "Update / Insert":

DECLARE @RowExists bit = 0
UPDATE MyTable SET DataField1 = 'xxx', @RowExists = 1 WHERE Key = 123
IF @RowExists = 0
  INSERT INTO MyTable (Key, DataField1) VALUES (123, 'xxx')

 

Siehe auch : http://stackoverflow.com/questions/108403/solutions-for-insert-or-update-on-sql-server

 

Lesen ohnen Schreibblockaden zu berücksichtigen:

Select / from tblABC with (nolock) where ...

 

Recovery auf SIMPLE setzen:

ALTER DATABASE TVStat SET RECOVERY SIMPLE

 

Rekursives Select:

    declare @tblTagRID table(M41RID char(32) primary key)    
    ;WITH CTE as
    (
        -- Anchor member definition
        SELECT e.M41RID, e.M41Roo        
        FROM @XmlData.nodes('/*/Parameters/Tags/Tag') XmlData([Tag])
        inner join tblCDbM41 e with (nolock) on e.M41RID = XmlData.[Tag].value('@RID','char(32)')        
        UNION ALL
        -- Recursive member definition
        SELECT e.M41RID, e.M41Roo
        FROM tblCDbM41 AS e      
        Inner join CTE x on x.M41RID = e.M41Roo  
    )
    Insert into @tblTagRID(M41RID)
    SELECT M41RID FROM CTE