2017-02-23 9 views
0

以下のストアドプロシージャでこれらのエラーが発生しました。1つの宣言値、2つの更新ステートメント、1つの挿入ステートメントを持つSQLストアドプロシージャ

サブクエリがEXISTSで導入されていない場合、選択リストで指定できる式は1つだけです。列名または数値が の場合、テーブル定義と一致しません。

Create PROCEDURE [dbo].[tbl_TeleCom_UpdateTeleComNo] 

    @type varchar(100) , 
    @comNo varchar(100), 
    @status bit 

AS 
BEGIN 
    -- SET NOCOUNT ON added to prevent extra result sets from 
    -- interfering with SELECT statements. 
    SET NOCOUNT ON; 

    Declare @b_ComNo varchar(100) 
    Set @b_ComNo = (Select * from tbl_TeleCom where Type = @type) 

    IF @b_ComNo IS NOT NULL 
    BEGIN 
     Insert Into tbl_ComNoHistory 
     Select B_ComNo, B_StartTime, B_EndTime 
     from tbl_TeleCom 
     where Type = @type 
     Group By B_ComNo, B_StartTime, B_EndTime  
    END 

     Update tbl_Balance Set 
     Status = 0 
     from tbl_Balance 
     Join tbl_TeleCom On tbl_TeleCom.CurrentComNo = tbl_Balance.ComNo 
     And tbl_TeleCom.Type = @type 

     Update tbl_TeleCom Set 
     CurrentComNo = @comNo, 
     CurrentTime = GETDATE(), 
     B_ComNo = CurrentComNo, 
     B_StartTime = CurrentTime, 
     B_EndTime = GETDATE() 
     where Type [email protected] 

     Update tbl_Balance Set 
     Status = @status 
     from tbl_Balance 
     Join tbl_TeleCom On tbl_TeleCom.CurrentComNo = tbl_Balance.ComNo 
     And tbl_TeleCom.Type = @type 
END 
+1

とwhtsあなたがここにPROB? – user7417866

+0

私はこれらのエラーがあります。 サブクエリがEXISTSで導入されていない場合は、選択リストで1つの式しか指定できません。 指定された値の列名または数がテーブル定義と一致しません。 – Erebus

+0

このSQLプロシージャを実行できません。 – Erebus

答えて

0
Create PROCEDURE [dbo].[tbl_TeleCom_UpdateTeleComNo] 

    @type varchar(100) , 
    @comNo varchar(100), 
    @status bit 

AS 
BEGIN 
    -- SET NOCOUNT ON added to prevent extra result sets from 
    -- interfering with SELECT statements. 
    SET NOCOUNT ON; 

    Declare @b_ComNo varchar(100) 
    SELECT @b_ComNo = ComNo from tbl_TeleCom where Type = @type 

    IF @b_ComNo IS NOT NULL 
    BEGIN 
     Insert Into tbl_ComNoHistory 
     Select B_ComNo, B_StartTime, B_EndTime 
     from tbl_TeleCom 
     where Type = @type 
     Group By B_ComNo, B_StartTime, B_EndTime  
    END 

     Update tbl_Balance Set 
     Status = 0 
     from tbl_Balance 
     Join tbl_TeleCom On tbl_TeleCom.CurrentComNo = tbl_Balance.ComNo 
     And tbl_TeleCom.Type = @type 

     Update tbl_TeleCom Set 
     CurrentComNo = @comNo, 
     CurrentTime = GETDATE(), 
     B_ComNo = CurrentComNo, 
     B_StartTime = CurrentTime, 
     B_EndTime = GETDATE() 
     where Type [email protected] 

     Update tbl_Balance Set 
     Status = @status 
     from tbl_Balance 
     Join tbl_TeleCom On tbl_TeleCom.CurrentComNo = tbl_Balance.ComNo 
     And tbl_TeleCom.Type = @type 
END 
関連する問題