SQLSERVER 将表名设置为变量

use E_Graphics_Card
go
if exists(select * from sys.objects where name='usp_Insert_Update_Bios_Info_Args')
drop proc usp_Insert_Update_Bios_Info_Args
GO

CREATE PROC usp_Insert_Update_Bios_Info_Args
    @Table_Name VARCHAR(50),
    @Code_Name VARCHAR(50),
    @Product_Name VARCHAR(50),
    @Bios_Config_File VARCHAR(50),
    @Bios_Date VARCHAR(50),
    @Bios_PN VARCHAR(50),
    @Bios_VerSion VARCHAR(50),
    @rs int output
AS
    DECLARE @Date_Time VARCHAR(50)
    DECLARE @Call_Diag_Name VARCHAR(50)
    DECLARE @Sql_1 nvarchar(1000)
    DECLARE @rest int
    BEGIN
        SET @Date_Time=convert(varchar(50), GETDATE(), 25)
        SELECT @rs=count(*),@Call_Diag_Name=Call_Diag_Name FROM NB_Diag_Test_Args WHERE Code_Name=@Code_Name GROUP BY Call_Diag_Name
        set @Sql_1='SELECT @ss=count(*) FROM '+@Table_Name+' WHERE Code_Name='+''''+@Code_Name+''''
        exec sp_executesql @Sql_1,N'@ss int output',@rest output
        set @rs=@rest
        --SELECT @rs=count(*),@Call_Diag_Name=Call_Diag_Name FROM NB_Diag_Test_Args WHERE Code_Name=@Code_Name GROUP BY Call_Diag_Name
        if(@rs>=1)
            begin
                SET @Sql_1='update '+@Table_Name+' set Product_Name='+''''+@Product_Name+''''+',Bios_Config_File='+''''+@Bios_Config_File+''''+',Bios_Date='+''''+@Bios_Date+''''+',Bios_PN='+''''+@Bios_PN+''''+
                ',Bios_VerSion='+''''+@Bios_VerSion+''''+',Date_Time='+''''+@Date_Time+''''+' where Code_Name='+''''+@Code_Name+''''
                exec (@Sql_1)
                if @@ERROR<=0
                    begin
                        set @rs=0
                        return @rs
                    end
            end
        else
            begin
                SET @Sql_1='insert '+@Table_Name+' values('+''''+@Code_Name+''''+','+''''+@Product_Name+''''+','+''''+@Bios_Config_File+''''+','+''''+@Bios_Date+''''+','+''''+@Bios_PN+''''+','+''''+@Bios_VerSion+''''+','+''''+@Call_Diag_Name+''''+','+''''+@Date_Time+''''+')'
                exec (@Sql_1)
                IF @@ERROR<=0
                    BEGIN
                        SET @rs=0
                        return @rs
                    END
            end

    END
    set @rs=1
    return @rs
GO

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值