如題

解决方案 »

  1.   

    每天生成一个文件名为Log+当前日期的文件名在一个存储过程中会多次写入操作日志到一个文件的
      

  2.   

    能否将如下SQL的系统日志信息如(所影响的行数为 68 行)(所影响的行数为 87 行)这种信息一起写入到文件中去吗?
      

  3.   

    sp_OACreate等系统储存过程调用File System Object组件来写文件示例代码:
    DECLARE @object int
    DECLARE @hr int
    DECLARE @src varchar(255), @desc varchar(255)
    Declare @tmp int
    declare @msg varchar(3000)
    SET @msg='Hello. MS SQL Server 2000. I Love you!!!'   --这字符串将会被写到SQL Server的安装目录下的Nipsan.Txt文件里面
    /*  取得SQL Server的安装路径*/
    declare @strPath  nvarchar(512)
    Exec sp_MSGet_Setup_paths @strPath OUTPUT
    Set @strPath=@strPath+'\Nipsan.Txt'   --组成文件名
    --创建Scripting组件实例
    EXEC @hr = sp_OACreate 'Scripting.FileSystemObject', @object OUT
    IF @hr <> 0
    BEGIN
       EXEC sp_OAGetErrorInfo @object, @src OUT, @desc OUT
       SELECT hr=convert(varbinary(4),@hr), Source=@src, Description=@desc
        RETURN
    END
    --创建文件
    EXEC @hr = sp_OAMethod @object, 'CreateTextFile', @tmp OUTPUT , @strPath
    IF @hr <> 0
    BEGIN
       EXEC sp_OAGetErrorInfo @object
        RETURN
    END
    --把@msg写到文件里面去
    EXEC @hr = sp_OAMethod @tmp, 'Write',NULL, @msg
    IF @hr <> 0
    BEGIN
       EXEC sp_OAGetErrorInfo @object
        RETURN
    END
    --关闭文件
    EXEC @hr = sp_OAMethod @tmp, 'Close',NULL
    IF @hr <> 0
    BEGIN
       EXEC sp_OAGetErrorInfo @object
        RETURN
    END
    -----------写文件操作Demo完成---------------------------------------------------------------
    --打开文件
    EXEC @hr = sp_OAMethod @object, 'OpenTextFile', @tmp OUTPUT ,@strPath
    IF @hr <> 0
    BEGIN
       EXEC sp_OAGetErrorInfo @object
        RETURN
    END
    SET @msg=''
    --读文件
    EXEC @hr = sp_OAMethod @tmp, 'Read', @msg OUT,3000
    IF @hr <> 0
    BEGIN
       EXEC sp_OAGetErrorInfo @object
        RETURN
    END
    -----读文件操作Demo完成
    SELECT @msg AS RESULT