![]() |
Datenbank: NEXUS • Version: 3 • Zugriff über: SQL
Tabellenname als Variable im Script, SQL
Hallo... 8-)
Hintergrund: ![]() Das Script: ...geht alle Tabellen durch, guckt ob AutoInc Feld vorhanden, wenn ja, Feldnamen holen und den AutoInc korrigieren. Das ist der Gedanke. :-D
Code:
Fehler im Alter Table Statement:
DECLARE @aTableName VARCHAR(100);
DECLARE @aAutoIncField VARCHAR(100); DECLARE @aFieldName VARCHAR(100); DECLARE TableCursor CURSOR FOR SELECT table_name FROM #tables WHERE AutoInc_Engine <> ''; OPEN TableCursor; FETCH NEXT FROM TableCursor INTO @aTableName; WHILE @@FETCH_STATUS = 0 DO DECLARE FieldCursor CURSOR FOR SELECT field_name FROM #fields where table_name = @aTableName and field_type_nexus = 'nxtAutoInc'; OPEN FieldCursor; FETCH NEXT FROM FieldCursor INTO @aAutoIncField; IF @@FETCH_STATUS = 0 THEN ALTER TABLE @aTableName ALTER COLUMN @aAutoIncField CAST AS Integer IGNORE; <-- ALTER TABLE @aTableName ALTER COLUMN @aAutoIncField CAST AS AutoInc IGNORE; <-- END IF; CLOSE FieldCursor; FETCH NEXT FROM TableCursor INTO aTableName; END WHILE; CLOSE TableCursor; Die Variablen @TableName und @AutoIncField werden vom Parser direkt als Namen verwendet. Wie kann ich die Variablen als Tabellenname bzw. Feldname verwenden? Danke für Info´s :thumb: Lösung gefunden: ... selbst zusammenbauen und als SQL String übergeben
Code:
IF @@FETCH_STATUS = 0 THEN
EXECUTE IMMEDIATE 'ALTER TABLE ' + @aTableName + ' ALTER COLUMN ' + @aAutoIncField + ' CAST AS Integer IGNORE'; EXECUTE IMMEDIATE 'ALTER TABLE ' + @aTableName + ' ALTER COLUMN ' + @aAutoIncField + ' CAST AS AutoInc IGNORE'; END IF; |
AW: Tabellenname als Variable im Script, SQL
Zitat:
Code:
IF @@FETCH_STATUS = 0 THEN
EXECUTE IMMEDIATE 'ALTER TABLE [' + trim(@aTableName) + '] ALTER COLUMN [' + trim(@aAutoIncField) + '] CAST AS Integer IGNORE'; EXECUTE IMMEDIATE 'ALTER TABLE [' + trim(@aTableName) + '] ALTER COLUMN [' + trim(@aAutoIncField) + '] CAST AS AutoInc IGNORE'; END IF; |
AW: Tabellenname als Variable im Script, SQL
Danke für den Hinweis. :thumb:
Da ich aber weiß auf welche Datenbank ich das loslasse und das Script keine allgemeingültige Verwendung findet, denke ich das das nicht notwendig ist. :zwinker: |
AW: Tabellenname als Variable im Script, SQL
Zitat:
|
AW: Tabellenname als Variable im Script, SQL
Zitat:
|
AW: Tabellenname als Variable im Script, SQL
Wenn die SQL-Komponenten Parameter, aber besser noch Makros können, dann könnte man dieses auch per Makros lösen.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:45 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz