我们公司的java web项目连接的是服务器上的sqlserver测试数据库。我本地使用的Navicat for Sqlserver来查询表中的数据,一般的查询用这个工具也都够用了(我还有个"sql manager2008 for sqlserver" 有时也用这个)。但是我现在想把服务器上的数据库导出来,在本地新建一个同样的库。然后修改项目的数据库连接地址改为本地。但是我不知道该如何操作呢?原来公司的项目是用的oracle,我用plsql就可以导出。导出视图/序列、表等。
然后在本地新建表空间、用户、还要授权。最后把服务器导出的表再导入到自己建立的用户下。我估计我们现在的sqlserver应该也可以吧 ?请帮忙 求详细步骤。 

解决方案 »

  1.   

    企业管理器---数据库名---task---Import Data---按提示继续往下
      

  2.   

    直接备份还原不更方便。如果只是导出脚本不要数据的话,SQL Server有一个产生脚本的功能,可以导出所有脚本,然后你可以在本地创建。
      

  3.   

    在SSMS的数据库上右键,任务---生成脚本,在向导中选择你需要导出的对象,在设置脚本编写选项的高级里面设置是否需要生成数据脚本及其他选项。
      

  4.   

    分离数据库或先备份再还原,在你本机的数据库上加上你用户的权限,项目里的连接字符串写成你本机的就行了。SQLSERVER版本最好一致。
      

  5.   

    1.备份 / 还原 
    backup database ...
    retore database...
    2.sql server管理器generate script生成脚本,如果想生成表数据的话生成insert语句使用一个存储过程如下
    CREATE   proc spGenInsertSQL (@tablename varchar(256))
    as
    begin
    declare @sql varchar(8000)
    declare @sqlValues varchar(8000)
    set @sql =' ('
    set @sqlValues = 'values (''+'
    select @sqlValues = @sqlValues + cols + ' + '','' + ' ,@sql = @sql + '[' + name + '],'
    from
          (select case
                    when xtype in (48,52,56,59,60,62,104,106,108,122,127)                            then 'case when '+ name +' is null then ''NULL'' else ' + 'cast('+ name + ' as varchar)'+' end'                when xtype in (58,61)                     then 'case when '+ name +' is null then ''NULL'' else '+''''''''' + ' + 'cast('+ name +' as varchar)'+ '+'''''''''+' end'               when xtype in (167)                     then 'case when '+ name +' is null then ''NULL'' else '+''''''''' + ' + 'replace('+ name+','''''''','''''''''''')' + '+'''''''''+' end'                when xtype in (231)                     then 'case when '+ name +' is null then ''NULL'' else '+'''N'''''' + ' + 'replace('+ name+','''''''','''''''''''')' + '+'''''''''+' end'                when xtype in (175)                     then 'case when '+ name +' is null then ''NULL'' else '+''''''''' + ' + 'cast(replace('+ name+','''''''','''''''''''') as Char(' + cast(length as varchar) + '))+'''''''''+' end'                when xtype in (239)                     then 'case when '+ name +' is null then ''NULL'' else '+'''N'''''' + ' + 'cast(replace('+ name+','''''''','''''''''''') as Char(' + cast(length as varchar) + '))+'''''''''+' end'                else '''NULL'''              end as Cols,name         from syscolumns         where id = object_id(@tablename)      ) T
    set @sql ='select ''INSERT INTO ['+ @tablename + ']' + left(@sql,len(@sql)-1)+') ' + left(@sqlValues,len(@sqlValues)-4) + ')'' from '+@tablename
    print @sql
    exec (@sql)
    end
    GO3 使用IMPORT和EXPORT功能,按向导导数据