如何用SqlServer2000每周或每月自动生成一个报表?

解决方案 »

  1.   

    如果我想每个月将SQL SERVER中查询到的数据导成一个Excel文件,那我就要每个月建一个作业,有方法可以写一个作业就能实现吗
      

  2.   


    写一个procedure在sql Server代理->作业->右击->新建作业
    设置每月末凌晨自动执行、不用每个月都创建一个作业
      

  3.   

    我的意思每个月生成不同excel文件,比如第一个月生成1.xls第一个月生成2.xls以此类推
      

  4.   

    这个根据月份来取值就可以了
    下面是导出excel3、将SQL SERVER中查询到的数据导成一个Excel文件
    --@1整表导出
    EXEC master..xp_cmdshell 'bcp 图书订购系统.dbo.出版社信息 out c:\2.doc -c -q -S**-U** -P**'
    --@2查询导出
    EXEC master..xp_cmdshell 'bcp "select * from AdventureWorks.Person.Address" queryout c:\adventure.txt -c -q -S** -U** -P**'
    --eg:EXEC master..xp_cmdshell 'bcp 库名.dbo.表名out c:\Temp.xls -c -q -S"servername" -U"sa" -P""'
    --参数:S 是SQL服务器名;U是用户;P是密码
    --可以导出doc,xls,txt等等--用法: bcp {dbtable | query} {in | out | queryout | format} 数据文件(大小写区分)
    --  [-m 最大错误数]             [-f 格式化文件]         [-e 错误文件]
    --  [-F 首行]                   [-L 末行]             [-b 批大小]
    --  [-n 本机类型]               [-c 字符类型]         [-w 宽字符类型]
    --  [-N 将非文本保持为本机类型] [-V 文件格式版本]     [-q 带引号的标识符]
    --  [-C 代码页说明符]           [-t 字段终止符]       [-r 行终止符]
    --  [-i 输入文件]               [-o 输出文件]         [-a 数据包大小]
    --  [-S 服务器名称]             [-U 用户名]           [-P 密码]
    --  [-T 可信连接]               [-v 版本]             [-R 允许使用区域设置]
    --  [-k 保留空值]               [-E 保留标识值]
    --  [-h"加载提示"]              [-x 生成 xml 格式化文件]
    --NULL
      

  5.   

    --@2查询导出
    EXEC master..xp_cmdshell 'bcp "SELECT * FROM 一配站 " queryout c:\authors.xls  -c -q -S"USER-D1DABEDDEA" -U"sa" -P"sa"'
    遇到以下错误
    SQLState = S0002, NativeError = 208
    Error = [Microsoft][ODBC SQL Server Driver][SQL Server]对象名 '一配站' 无效。
    SQLState = 37000, NativeError = 8180
    Error = [Microsoft][ODBC SQL Server Driver][SQL Server]未能准备语句。
    NULL
    我的用户账号 密码 服务器名字在整表导出都对啊
    sql语句单独执行也对啊
    不知道什么地方不对了--
      

  6.   


    Declare @SQL NVARCHAR(4000)
    SELECT @SQL='bcp "SELECT * FROM ##ProductDetails" queryout C:\WeeklyReports\MissingAndIncorrectProducts.csv -c -t, -T -S'+ @@servername
    EXEC master..xp_cmdshell @SQL文件名可以根据日期取值。把这个加到存储过程里 存储过程用job定时调度