Tabelle mit Struktur und Inhalt kopieren

Folgendes SQL-Statement erstellt schnell eine Kopie einer Tabelle.

select * into  from 

//Example:
Select * into employee_backup from employee

Quelle: Sql Server: How to copy a table?




Auto-Increment zurücksetzen

Will man in MSSQL den internen Zähler für identity-Felder wieder zurücksetzen, kann man über Enterprise Manager o.ä. das Statement absetzen, das den Zähler wieder auf 0 oder anderen beliebigen Wert setzt.

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

Quelle: MS SQL Tipp: Auto-Increment wieder zurücksetzen




Change datetime to date


select TRUNC(DateTimeField)

//This returns only the DATE part..

Oracle/PLSQL: Trunc Function (with dates)




Fehlermeldung beim Versuch, eine Tabelle in SQL Server 2008 zu speichern: „Speichern von Änderungen ist nicht zulässig“.

Gehen Sie folgendermaßen vor um die verhindern, Speichern von Änderungen, die die Tabelle Neuerstellung erfordern, Option zu ändern:

  1. Öffnen Sie SQL Server Management Studio (SSMS).
  2. Klicken Sie im Menü Extras auf Optionen.
  3. Klicken Sie im Navigationsbereich des Fensters Optionen auf Designer.
  4. Aktivieren Sie oder deaktivieren Sie das Kontrollkästchen verhindern, Speichern von Änderungen, die die Tabelle Neuerstellung erfordern, und klicken Sie dann auf OK.

Hinweis: Wenn Sie diese Option deaktivieren, werden Sie nicht gewarnt beim Speichern der Tabelle, die vorgenommenen Änderungen wurden die Metadatenstruktur der Tabelle geändert. In diesem Fall kann Datenverluste auftreten, wenn Sie die Tabelle speichern.




Autoincrement in SELECT-Statement

-- MS SQL 2005 und höher

SELECT
  ROW_NUMBER() OVER( ORDER BY SomeColumn ) AS 'rownumber'
, *
FROM YourTable

-- MS SQL 2000
SELECT
  IDENTITY(INT, 1,1) AS Rank
‚ VALUE
INTO #Ranks
FROM YourTable WHERE 1=0

INSERT INTO #Ranks
SELECT SomeColumn FROM YourTable
ORDER BY SomeColumn
SELECT * FROM #Ranks
Order By Ranks