Try declaring a variable to hold the result of the SELECT
statement.
DECLARE @DUM INT
SET @DUM = (SELECT ISNULL(DUM, 1) FROM Table2 WHERE [no] < 1389)
UPDATE Table1
SET
l2p= 0.207 * @DUM
WHERE [no] < 1389
If you have multiple records, this will not work, you would need to join against Table2
...
UPDATE t
SET t.l2p = 0.207 * ISNULL(t2.DUM, 1)
FROM Table1 t INNER JOIN Table2 t2
ON t.[no] = t2.[no]
WHERE t.[no] < 1389
You should really use a stored procedure, as below...
CREATE PROCEDURE [dbo].[sprocName]
@No INT
AS
BEGIN
SET NOCOUNT ON;
UPDATE t
SET t.l2p = 0.207 * ISNULL(t2.DUM, 1)
FROM Table1 t INNER JOIN Table2 t2
ON t.[no] = t2.[no]
WHERE t.[no] < @No
END
To run the stored procedure, use EXEC sprocName @No=1389