Ich versuche einen Einkaufswagen zu erstellen, wo der Kunde wählen kann, ob er die Lieferung oder Abholung für seine Artikel abholen möchte. Der Standardpreis für die Lieferung beträgt 10 US-Dollar. Wie stelle ich den Standardwert für die Lieferung auf $ 10 ein, aber nur, wenn der Kunde die Lieferung wählt?Wie erstelle ich eine Nullspalte, aber mit dem Standardwert in SQL?
Antwort
Ich denke, Sie eine berechnete Spalte bedeuten:
CREATE TABLE YourTableName
(
....
, DeliveryCharge AS CASE
WHEN TYPE == 1 THEN 10
WHEN TYPE == 0 THEN NULL
END
)
Oder Sie einen Trigger erstellen, die den Wert auf INSERT/UPDATE auf die Tabelle legt:
CREATE TRIGGER TR_YourTableName_DeliveryCharge
ON YourTableName
FOR INSERT, UPDATE
AS
UPDATE YourTableName SET DeliveryCharge = CASE TYPE WHEN 1 THEN 10 ELSE NULL END
go
Vorausgesetzt Sie haben eine Spalte mit dem Namen haben TYPE, die angibt, ob es sich um eine Lieferung handelt oder nicht.
Vielen Dank !!! –
sollten Sie den Standardwert auf 10 im SQL Server setzen und null übergeben (übergeben Sie nichts) an SQL-Server, wenn Kunde Lieferung wählt.
so wird der Teil der Logik in Ihrem Code und anderen Teil in SQL Server sein.
Und pass 0, wenn die Abholung ausgewählt ist, oder? –
verwendest du orm? Oder du machst jyst einen Insert-String in deinem Code? Wenn Sie einen Insert-String machen, übergeben Sie nichts, nicht einmal 0. – Arash
Wenn Sie EF verwenden, ist C# ein starker Typ, Sie können NULL nicht als int, bigin oder .. übergeben. Es ist immer 0. In diesem Fall müssen Sie 10 in Ihrem Code übergeben. – Arash
Haben Sie versucht, es zu lösen? Einige SQL-Abfragen, die Spalten erstellen? – mihkov