Ändern einer zu berechnenden Spalte SQL SERVER

Ich habe einen Tisch ähnlich diesem:

CREATE TABLE [dbo].[test]( [id] [int] IDENTITY(1,1) NOT NULL, [action] [varchar](50), [id_source] [int] NULL, [id_dest] [int] NULL, [name] [varchar](255) ) 

Ich versuche, die zu berechnende Namensspalte umzuwandeln. Ich habe etwas ähnliches gemacht, ohne Erfolg zu haben

 ALTER TABLE [dbo].[test] ALTER COLUMN [name] AS ([dbo].[f_get_name]([id_source],[id_dest],[action])) 

Der Tisch ist momentan leer. Ist es möglich, dies mit einem ALTER-Befehl zu erreichen? Vielen Dank

Du kannst es nicht ändern.

ALTER SPALTE

Gibt an, dass die benannte Spalte geändert oder geändert werden soll.

Die modifizierte Spalte kann keine der folgenden sein:

Eine Spalte mit einem timestempeldatentyp.

Die ROWGUIDCOL für den Tisch.

Eine berechnete Spalte oder in einer berechneten Spalte verwendet.

Sie müssen fallen lassen und neu erstellen:

 ALTER TABLE [dbo].[test] DROP COLUMN [name]; ALTER TABLE [dbo].[test] ADD [name] AS ([dbo].[f_get_name]([id_source],[id_dest],[action])); 

Ist es möglich, dies mit einem ALTER-Befehl zu erreichen?

Nein, es gibt keine Möglichkeit, es zu erreichen, indem man den Tisch ändert. Der ALTER-Tabellenbefehl beschränkt Sie, um dies zu tun, da Ihre Spalte die Berechnung beinhaltet.

Lösung:

Du musst die Spalte fallen lassen und es wieder so wiederherstellen:

 alter table [dbo].[test] drop column [name]; alter table [dbo].[test] add [name] as ([dbo].[f_get_name]([id_source],[id_dest],[action]));