-1

ユーザーが値を選択しない場合、またはユーザーが値を選択したときに新しい値を設定する場合、列の値を null に設定する方法

create procedure update2
 @SSN int,
 @Employee_FirstName varchar(50),
 @Employee_lastName varchar(50),
 @gender_ID int,
 @Department_ID int,
 @location_ID int,
 @salary decimal(18, 3)

as

Update Employee set Employee_FirstName= @Employee_FirstName,
Employee_lastName=@Employee_lastName,gender=@gender_ID,Department_ID = @Department_ID,
location_ID=@location_ID or location_ID is null  , salary=@salary
where SSN = @SSN
4

3 に答える 3

0

@location_ID INT = NULL -- 必要に応じてこのように NULL を指定します

ただし、この特定の列との関係 (外部キー) を削除する必要があります。そうしないと、更新時に競合が発生するというエラーが発生します。

ありがとうアルン・アントニー

于 2013-06-12T10:58:56.313 に答える
0

@location_ID を null として宣言できます

CREATE PROCEDURE update2
@SSN INT ,
@Employee_FirstName VARCHAR(50) ,
@Employee_lastName VARCHAR(50) ,
@gender_ID INT ,
@Department_ID INT ,
@location_ID INT = NULL ,
@salary DECIMAL(18, 3)

AS 

UPDATE  Employee
SET     Employee_FirstName = @Employee_FirstName ,
        Employee_lastName = @Employee_lastName ,
        gender = @gender_ID ,
        Department_ID = @Department_ID ,
        location_ID = @location_ID ,
        salary = @salary
WHERE   SSN = @SSN
于 2013-06-12T06:49:59.170 に答える