ID-Rücksetzen / Aufträge aktive - deaktive

05/11/2009 - 10:06 von Michael Monarch | Report spam
Hallo Experten,

2 Fragen habe ich heute:

a) Wie kann man Tablenfeld ID mit fortlaufender Nr dazu bringen wieder bei 1
anzufangen in einer gespeicherten Procedure

b) Wie kann man Auftràge (SQL-Agent) aktivieren oder deaktivieren in einer
gespeicherten Procedure

Vorab schon mal Danke ... eem m.monarch
 

Lesen sie die antworten

#1 Uwe Ricken
05/11/2009 - 14:12 | Warnen spam
Hallo Michael,

eine ID (IDENTITY) kannst Du mit zwei Möglichkeiten zurücksetzen:

TRUNCATE TABLE

Wenn die Tabelle eine Identitàtsspalte enthàlt, wird der Zàhler für diese
Spalte auf den Ausgangswert zurückgesetzt, der für die Spalte definiert ist.
Wenn kein Ausgangswert definiert wurde, wird der Standardwert 1 verwendet.

Einschrànkungen:
TRUNCATE geht nicht, wenn...

Auf die Tabelle mit einer FOREIGN KEY-Einschrànkung verwiesen wird
Die Tabelle ist an einer indizierten Sicht beteiligt.
Die Veröffentlichung mithilfe einer Transaktionsreplikation oder
Mergereplikation vorgenommen wird

Ausserdem muss der Ausführende ZWINGEN Mitglied einer der folgenden
Datenbank / Serverrollen sein
- sysadmin
- db_owner
- ddl_admin

Einzige Möglichkeit, diese Einschrànkung zu umgehen, wàre das Ausführen
dieser Aktion in einer Stored Procedure mit der Klausel EXECUTE AS

Die wesentlich einfachere Möglichkeit wàre ein DBCC CHECKIDENT
Aufruf: DBCC CHECKIDENT('DeineTabelle', RESEED, NeuerWert)

Jedoch gelten auch hierbei die sicherheitsrelevanten Einschrànkungen, wie
sie auch für TRUNCATE gelten.

HTH ;-)

Uwe Ricken
MCTS Microsoft SQL Server 2005
MCDBA Microsoft SQL Server 2005

Ähnliche fragen