以标准路径在Excel上写入的SQL输出

以标准路径在Excel上写入的SQL输出,sql,sql-server,sql-server-2012,Sql,Sql Server,Sql Server 2012,我试图将SQL查询的输出保存到Excel并保存在标准路径中。我使用OPENROWSET编写输出 但我得到了一个错误: “Philips”附近的语法不正确 请分享你的宝贵建议 INSERT INTO OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'Excel 8.0;Database=C:\testing.xls;', 'DECLARE @VPTVARCHAR(24) SET @VPT= 'Philips

我试图将SQL查询的输出保存到Excel并保存在标准路径中。我使用
OPENROWSET
编写输出

但我得到了一个错误:

“Philips”附近的语法不正确

请分享你的宝贵建议

INSERT INTO OPENROWSET('Microsoft.Jet.OLEDB.4.0', 
                       'Excel 8.0;Database=C:\testing.xls;', 
       'DECLARE @VPTVARCHAR(24) SET @VPT= 'Philips'
        DECLARE @DAYS INT SET @DAYS = -30   

        SELECT * 
        INTO #XTP1 
        FROM (SELECT DISTINCT 'START' AS DTT, DATEADD(D,@DAYS,DATEACTIONED) AS DT 
              FROM REPORTS
              WHERE VPT = @VPT          
              UNION             
              SELECT DISTINCT 'CHANGE' AS DTT, DATEACTIONED AS DT  
              FROM REPORTS
              WHERE VPT = @VPT          
              UNION             
              SELECT 'END' AS DTT, DATEADD(dd, -1, DATEDIFF(dd, 0, GETDATE())) AS DT) AS A
              FROM [Sheet1$]'

谢谢

您需要添加双引号:

INSERT INTO OPENROWSET('Microsoft.Jet.OLEDB.4.0', 
                       'Excel 8.0;Database=C:\testing.xls;', 
       'DECLARE @VPTVARCHAR(24) SET @VPT= ''Philips''
        DECLARE @DAYS INT SET @DAYS = -30   

        SELECT * 
        INTO #XTP1 
        FROM (SELECT DISTINCT ''START'' AS DTT, DATEADD(D,@DAYS,DATEACTIONED) AS DT 
              FROM REPORTS
              WHERE VPT = @VPT          
              UNION             
              SELECT DISTINCT ''CHANGE'' AS DTT, DATEACTIONED AS DT  
              FROM REPORTS
              WHERE VPT = @VPT          
              UNION             
              SELECT ''END'' AS DTT, DATEADD(dd, -1, DATEDIFF(dd, 0, GETDATE())) AS DT) AS A
              FROM [Sheet1$]')

这将消除语法错误,而不是通过查看查询来查看
'Philips'
。您的报价有误,并且缺少右括号。