Ich habe eine Tabelle unten und ich werde eine neue Spalte mit dem Namen 'Betrag' erstellen. Die vorhandene Spalte "Id" ist ein Fremdschlüssel und verknüpft die Informationen in einer Tabelle mit "Loan" ("Id" ist der Primärschlüssel der Tabelle "Loan"). Die einfache Sache, die ich tun möchte, ist, jede neu geschaffene Betragszelle mit dem richtigen Betrag zu versehen, der von der Tabelle "Darlehen" erhalten wird, die mit "Identifikation" zugeordnet wird. Ich verwende derzeit lokale Variable und selbst erstellten Tabellentyp, um den Betragswert in "Loan" von Fall zu Fall zu finden. Gibt es einen anderen effizienteren Weg, dieselbe Operation auszuführen? Danke vielmals. MyTable war wie folgt:Wie füllt man die neu erstellte Spalte effizient aus?
Mein Code war wie folgt:
ALTER TABLE MyTable
ADD Amount MONEY
CREATE TYPE ListofID AS TABLE (idx INT IDENTITY(1,1), ID VARCHAR(255))
DECLARE @Table_ID_List ListofID
INSERT @Table_ID_List (
ID)
SELECT Id FROM MyTable
DECLARE @i INT
DECLARE @cnt INT
SELECT @i = min(idx) - 1, @cnt = max(idx) FROM @Table_ID_List
DECLARE @app VARCHAR(255)
WHILE @i<@cnt
BEGIN
SELECT @i = @i + 1
SELECT @app = (SELECT ID FROM @Table_ID_List WHERE idx = @i)
UPDATE MyTable
SET Amount =(SELECT Amount FROM Loan WHERE Id = @app)
WHERE Id = @app
END
Sie können dem Standardwert eine Skalarfunktion zuweisen. Sie können keine Spaltenwerte übergeben. – selami
Hier ist ein großartiger Ort um anzufangen. http://spaghettidba.com/2015/04/24/how-to-post-a-t-sql-question-on-a-public-forum/ –
Sie müssen sagen, was Sie bisher versucht haben. –