CREATE PROCEDURE dbo.up_insertrecord 
@p nvarchar(20),
@p1 datetime,
@p2 float,
@p3 nvarchar(10),
@p4 float,
@p5 float,
@p6 nvarchar(10),
@p7 float,
@p8 nvarchar(10)
AS
INSERT INTO @p(时间,浓度,浓度单位,透过率,压力,压力单位,温度,温度单位) 
VALUES (@p1,@p2,@p3,@p4,@p5,@p6,@p7,@p8)
GO有语法错误,提示说@p没有定义。可是我明明定义了啊。

解决方案 »

  1.   

    CREATE PROCEDURE dbo.up_insertrecord 
    @p nvarchar(20),
    @p1 datetime,
    @p2 float,
    @p3 nvarchar(10),
    @p4 float,
    @p5 float,
    @p6 nvarchar(10),
    @p7 float,
    @p8 nvarchar(10)
    ASexec('
    INSERT INTO ' + @p + '(时间,浓度,浓度单位,透过率,压力,压力单位,温度,温度单位) 
    VALUES (' +@p1+','+cast(@p2 as varchar) + ',' + cast(@p3 as varchar)
    +',' + cast(@p4 as varchar) + ',' + cast(@p5 as varchar)
    +',' + @p6 + ',' + cast(@p7 as varchar)+','+@p8+') ')go参考:
    http://expert.csdn.net/Expert/topic/2364/2364046.xml?temp=.829693
    [交流]动态SQL语句
      

  2.   

    表名﹐字段名會變化的SQL要用动态SQL语句,如上