CREATE PROC PRC_INSERTINTO
AS 
BEGIN 
DECLARE @IN_VAR_VAL_FROM VARCHAR(50)
SET @IN_VAR_VAL_FROM='A,B,C,D,E'
DECLARE @IN_VAR_VAL VARCHAR(MAX) 
SELECT  @IN_VAR_VAL='SELECT '''+replace(@IN_VAR_VAL_FROM,',',''' UNION  ALL SELECT ''')+''''
INSERT num EXEC(@IN_VAR_VAL)
SELECT * FROM num
END其中mun是我的表名,可以直接这么写吗?INSERT num EXEC(@IN_VAR_VAL)这句提示对象名num无效,我也觉得有问题,因为这里没有确定是哪个库,而且写入的数据到哪个字段也不清楚,求高手帮忙改改吧!

解决方案 »

  1.   

    exec('INSERT num '+@IN_VAR_VAL)
      

  2.   

    CREATE PROC PRC_INSERTINTO 
    AS 
    BEGIN 
    DECLARE @IN_VAR_VAL_FROM VARCHAR(50)  SET @IN_VAR_VAL_FROM='A,B,C,D,E'  DECLARE @IN_VAR_VAL VARCHAR(MAX)  SELECT  @IN_VAR_VAL='SELECT '''+replace(@IN_VAR_VAL_FROM,',',''' UNION  ALL SELECT ''')+''''  INSERT into num 
    EXEC(@IN_VAR_VAL)  SELECT * FROM num 
    END 
    写入的数据到哪个字段也不清楚??
      

  3.   

    exec('INSERT num '+@IN_VAR_VAL)
      

  4.   

    Alter PROC PRC_INSERTINTO 
    AS 
    BEGIN 
    DECLARE @IN_VAR_VAL_FROM VARCHAR(50) 
    SET @IN_VAR_VAL_FROM='A,B,C,D,E' 
    DECLARE @IN_VAR_VAL VARCHAR(MAX) 
    SELECT  @IN_VAR_VAL='SELECT '''+replace(@IN_VAR_VAL_FROM,',',''' UNION  ALL SELECT ''')+'''' 
    select @IN_VAR_VAL = 'INSERT mun '+@IN_VAR_VAL
    --print @IN_VAR_VAL
    exec(@IN_VAR_VAL)
    SELECT * FROM mun 
    END 
      

  5.   

    我要写入的数据库名table1
    表名是num
    字段名是word
      

  6.   

    CREATE PROC PRC_INSERTIN1 
    AS 
    BEGIN 
    DECLARE @IN_VAR_VAL_FROM VARCHAR(50) 
    SET @IN_VAR_VAL_FROM='A,B,C,D,E' 
    DECLARE @IN_VAR_VAL VARCHAR(MAX) 
    SELECT  @IN_VAR_VAL='SELECT '''+replace(@IN_VAR_VAL_FROM,',',''' UNION  ALL SELECT ''')+'''' 
    exec('INSERT INTO num (word) '+@IN_VAR_VAL)
    END 
    这样写对不对呀?为什么还是插不进去呢?
      

  7.   

    Hi,
     One Sample
    0)--num's Structure USE Testshenliang
    GO
    SELECT * FROM num WHERE 1 = 3v_name
    ------------------------------(0 row(s) affected)1)QueryUSE Testliang_0225
    GO
    BEGIN
    DECLARE @IN_VAR_VAL_FROM VARCHAR(50) 
    SET @IN_VAR_VAL_FROM='A,B,C,D,E' 
    DECLARE @IN_VAR_VAL VARCHAR(MAX) 
    SELECT  @IN_VAR_VAL='SELECT '''+replace(@IN_VAR_VAL_FROM,',',''' UNION  ALL SELECT ''')+'''' 
    INSERT Testshenliang.dbo.num EXEC(@IN_VAR_VAL) 
    SELECT * FROM Testshenliang.dbo.num 
    END3)Resultv_name
    ------------------------------
    A
    B
    C
    D
    E(5 row(s) affected)