1:查询分析器中直接运行
2:命令行下运行(先存为脚本文件)
  
isql -S 服务器名 -U sa -P 密码 -i "c:\aa.sql"
osql -U sa -P -S DB-Server  -d SPVSDB -o err.txt -i c:\aa.sql -b
3:前台开发工具中用ADO执行

解决方案 »

  1.   

    EXEC sp_attach_single_file_db @dbname = 'test',@physname = 'f:\vcprogram\database\test_data.mdf'
    就这样放在查询分析器都可以运行了
      

  2.   

    m_pConnection->Execute("EXEC sp_attach_single_file_db @dbname = 'test',@physname = 'f:\vcprogram\database\test_data.mdf'");
      

  3.   

    to txlicenhe(马可) :这样执行会出错的,难道你没试过吗?出错信息:IDispatch error #3092
      

  4.   

    举例:below is from MSDN,you can find a lot of technical article in MSDN if you search"stored procedure and VC"
    good luckSteps To Reproduce Behavior
    In the SQL Server 7.0 Query Analyzer select the test database Pubs.
    Create the following stored procedure. This stored procedure returns a recordset and an out parameter count.if exists (select * from sysobjects where id = object_id(N'[dbo].[GetJobs]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
       drop proc GetJobs
       go
       create proc GetJobs @id as int, @count as int [out] as
       begin
        Select @count = Count(*) from jobs where job_id >@id
        Select * from jobs where job_id >@id
       end
       go
     Use VC App Wizard to create a new console application and modify the code as follows:#include "stdafx.h"
       #include "stdio.h"
       #import "C:\PROGRA~1\COMMON~1\System\ado\msado15.dll" no_namespace rename ("EOF", "EOF2")   struct InitOle {
         InitOle()  { ::CoInitialize(NULL); }
         ~InitOle() { ::CoUninitialize();   }
       } _init_InitOle_;   int main(int argc, char* argv[])
       {
        _variant_t varErr((long)0, VT_ERROR);
        _CommandPtr comm(__uuidof(Command));
        _ConnectionPtr conn(__uuidof(Connection));    _bstr_t connstr="Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=pubs;Data Source=(local)";
        conn->Open(connstr, "", "", adConnectUnspecified);
        comm->ActiveConnection=conn;
        comm->CommandText="GetJobs";
        comm->CommandType = adCmdStoredProc ; 
        comm->Parameters->Refresh();
        _variant_t recs;    comm->Parameters->Item[_variant_t((short)1)]->Value= _variant_t((long)5);
        _RecordsetPtr rs = comm->Execute(&recs, &vtMissing,adCmdStoredProc);     _variant_t recordcount= comm->Parameters->Item[_variant_t((short)2)]->Value;    printf("recordcount = %li\n", (long)recordcount);
        return 0;
       }
     
    Change the Datasource, User ID and password in the connection string above.
    The recordcount variant that the above code returns is of type VT_NULL rather than the number of records that the stored procedure returns.
      

  5.   

    你用累似代码执行 sp_attach_single_file_db 过程。