Hallo,
ich habe das folgende Problem.
Ich habe 3 Tabellen A, PP und PL von denen A schon besteht.
Die Tabellen PP und PL verbindet eine 1:n Beziehung, die Tabelle PP und A ebenfalls (in Objekten: PP besteht aus mehreren PLs und gehört selber zu ein oder mehreren As).
Ich erstelle die Tabellen PP und PL und erzeuge jeweils ein Standardeintrag.
Das funktioniert prima.
Nun zum Problem, Tabelle A soll eine neue Spalte bekommen, welche ein Fremdschlüssel auf PP_ID in PP ist und deren Defaulwert die ID des sowben erzeugten Eintrags ist.
Mein Versuch war der folgende:
Ergebnis
Variablen sind in der ALTER TABLE-Anweisung nicht zulässig
Da ich das aber auf mehreren Datenbanken machen muss, würde ich es schon gern dynamisch machen.
Kann jemand helfen?
Tschau und Danke
Dila
ich habe das folgende Problem.
Ich habe 3 Tabellen A, PP und PL von denen A schon besteht.
Die Tabellen PP und PL verbindet eine 1:n Beziehung, die Tabelle PP und A ebenfalls (in Objekten: PP besteht aus mehreren PLs und gehört selber zu ein oder mehreren As).
Ich erstelle die Tabellen PP und PL und erzeuge jeweils ein Standardeintrag.
Code:
/*PP_Tabelle anlegen*/
create table PP (
PP_ID [uniqueidentifier] CONSTRAINT DF_PP_PP_ID DEFAULT newid(),
PP_Name varchar(50),
CONSTRAINT pk_PP primary key ( PP_ID )
)
/*PL_Tabelle anlegen*/
create table PaymentLevel (
PL_ID [uniqueidentifier] CONSTRAINT df_PL_PL_ID DEFAULT newid(),
PP_ID [uniqueidentifier] CONSTRAINT fk_PL_PP foreign key references PP (PP_ID)
...,
CONSTRAINT pk_PL primary key ( PL_ID )
)
/*Erstes PP ZERO anlegen*/
declare @profile [uniqueidentifier]
select @profile=newid()
insert into PP (PP_ID, PP_Name) values (@profile, 'zero')
/*Erstes PL für ZERO anlegen*/
insert into PaymentLevel (PP_ID) values (@profile)
Das funktioniert prima.
Nun zum Problem, Tabelle A soll eine neue Spalte bekommen, welche ein Fremdschlüssel auf PP_ID in PP ist und deren Defaulwert die ID des sowben erzeugten Eintrags ist.
Mein Versuch war der folgende:
Code:
/*Neue Spalte und Defaultwert für PP zu A hinzufügen*/
alter table A
add PP_ID [uniqueidentifier] CONSTRAINT df_A_PP_ID DEFAULT @profile
Ergebnis
Variablen sind in der ALTER TABLE-Anweisung nicht zulässig
Da ich das aber auf mehreren Datenbanken machen muss, würde ich es schon gern dynamisch machen.
Kann jemand helfen?
Tschau und Danke
Dila