2011-05-31 2 views
0
ALTER PROCEDURE dbo.updateadmin 
(
    @ReportRead char(10), 
    @Date date,@EmpName varchar(50), 
    @Subject nchar(50) 
) 
AS 
    insert into Emp_ReportUpdate (ReportRead,[Date],EmpName,Subject) 
    values(@ReportRead,@Date,@EmpName,@Subject) 
    RETURN 

Ceci est ma procédure et @EmpName je dois utiliser comme une instruction select afin que pour obtenir des données d'une autre table et obtenir en @EmpN. Aussi, si quelqu'un a une méthode plus courte, guide-moi.Nested requête comment

+2

On ne sait pas ce que vous voulez? INSERT certaines valeurs d'une autre table? Un SELECT après les INSERT..VALUES? Qu'est-ce que @EmpN? – gbn

Répondre

0
ALTER PROCEDURE dbo.updateadmin 
(
    @ReportRead char(10), @Date date, @EmpName varchar(50), @Subject nchar(50) 
) AS 
SELECT @EmpName = somecol FROM OTHERTABLE 

insert into Emp_ReportUpdate 
(ReportRead, [Date], EmpName, Subject) 
VALUES 
(@ReportRead, @Date, @EmpName, @Subject) 

RETURN 
1

INSERT..SELECT.

Vous pouvez travailler le reste vous-même bien sûr, parce que nous n'avons pas cette information ...

ALTER PROCEDURE dbo.updateadmin 

    (
    @ReportRead char(10),@Date date,@EmpName varchar(50),@Subject nchar(50) 
    ) 

AS 
    insert into Emp_ReportUpdate (ReportRead,[Date],EmpName,Subject) 
    select @ReportRead, @Date, someOtherCol, @Subject 
    from myothertable 
    where somecol = @EmpName 
RETURN 
0

Vous pouvez également utiliser CTE. Cela peut être utile à l'avenir dans le cas où votre procédure stockée peut devenir plus complexe et cette requête peut être utilisée plus d'une fois. Donc, pour se débarrasser des doublons, nous pouvons utiliser CTE.

ALTER PROCEDURE dbo.updateadmin 

    (
     @ReportRead char(10), 
     @Date date, 
     @EmpName varchar(50), 
     @Subject nchar(50) 
    ) 

AS 
    With CTE 
    AS 
    (
     Select YourColumnName from YourTableName Where YourColumnName = @EmpName 
    ) 

    insert into Emp_ReportUpdate (ReportRead,[Date],EmpName,Subject) 
    Select @ReportRead, @Date, YourColumnName, @Subject 
    From CTE 

    RETURN