Sorry, aber ich bin neu in TSQL, so dass ich nicht einmal grundlegende Dinge wissen. Ich habe an dieser Funktion gearbeitet, aber ich habe eine Menge Syntaxprobleme bekommen. Wenn jemand mir beim Schreiben dieser Funktion behilflich sein kann, würde ich es begrüßen.Wie schreibe ich eine TSQL-Funktion, die einen Tabellennamen zum Ablegen und löscht eine Tabelle
1. Ich würde es für die Existenz einer Tabelle überprüfen möchten, bevor Sie die Tabelle
2. ich möchte fallen auf Fehler zu überprüfen, nachdem die Drop-Aktion
3. Durchführung ich es möchte um Statusmeldungen auszudrucken, die den Namen der Tabelle enthalten
4. Ich weiß, dass ich "Keine Aktion benötigt" ausdrucken muss, aber ich schließe es trotzdem ein, um die Aufgabe etwas schwieriger zu machen.
5. Ich habe in eine Menge von Syntaxfehler Probleme laufen, die ich weiß nicht, wie
CREATE FUNCTION SAFE_DROP_TABLE(@TableName NVARCHAR(30))
AS
BEGIN
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(@TableName) AND TYPE IN (N'U'))
DROP TABLE @TableName
IF @@ERROR <> 0
BEGIN
PRINT 'Failed to drop ' + @TableName + ' Error = ' + @@ERROR
END ELSE BEGIN
PRINT 'dropped' + @TableName
END
ELSE
PRINT 'NO ACTION NEEDED'
END
END
Tor zum aufzuräumen: Um TSQL so gut wie möglich, so schnell wie möglich zu lernen. Ich muss so viel SQL wie möglich sehen und schreiben. Ich schätze jeden, der sich die Zeit nimmt zu antworten.
EXEC ('DROP TABLE' QUOTENAME (@TableName)) - Behandelt alle Tabellennamen und schützt vor SQL-Injection- –