none
SqlServer2008复制数据库,选择不了“数据库” RRS feed

答案

  • 会不会是权限的问题,你必须使用具来源和目的端都具有sysadmin权限的用户登入才行。

    http://msdn.microsoft.com/en-us/library/ms188664.aspx#Prerequisites


    以上說明若有錯誤請指教,謝謝。
    http://www.dotblogs.com.tw/terrychuang/

    2012年5月8日 7:43
  • 其实sysadmin是SQL Server的固定服务器角色,并非Windows帐户。

    所以你是用sa登入之后去作复制数据库的吗?


    以上說明若有錯誤請指教,謝謝。
    http://www.dotblogs.com.tw/terrychuang/

    2012年5月8日 12:34
  • 我的是使用sa帐户,是可以复制的


    给我写信: QQ我:点击这里给我发消息

    2012年5月8日 13:05
  • You like to copy db? Source db is CEMSDB, where is it? Can you post all steps you did?
    2012年5月8日 13:09
  • vardecimal是SQL2005 SP2推出的新的存储格式

    具体可以看以下文章

    关于SQL Server 2005 SP2中提供的Vardecimal存储格式

    1、你可以先选择数据库的简单恢复模式

    2、使用

    --禁用vardecimal存储格式
    EXEC sp_db_vardecimal_storage_format '你的数据库名', 'OFF' ;
    GO

    3、查询一下是否已经关闭

    EXEC sp_db_vardecimal_storage_format
    GO

    4、进行数据库复制

    有关启用或者禁用vardecimal的一些脚本:

    USE master ;
    GO
    
    -- Enable vardecimal on database 对数据库开启vardecimal存储格式
    EXEC sp_db_vardecimal_storage_format 'AdventureWorks', 'ON' ;
    GO
    
    
    -- Check the vardecimal storage format state for all databases in the instance 查询当前数据库实例里的所有数据库的vardecimal 的存储格式的状态
    EXEC sp_db_vardecimal_storage_format
    GO
    
    -- Enable vardecimal compression at the table level 允许在表级别开启vardecimal存储格式 的压缩
    USE AdventureWorks
    GO
    -- Note: The BOL example incorrectly references 'decimal data compression'
    EXEC sp_tableoption 'Sales.SalesOrderDetail', 'vardecimal storage format', 1
    GO
    
    -- Does not show vardecimal properties sp_help 命令不会显示vardecimal存储格式
    EXEC sp_help 'Sales.SalesOrderDetail'
    
    
    -- So, use the TableHasVarDecimalStorageFormat objectproperty 可以使用objectproperty查看vardecimal存储格式
    USE AdventureWorks ;
    GO
    SELECT name, object_id, type_desc
    FROM sys.objects 
    WHERE OBJECTPROPERTY(object_id, 
    N'TableHasVarDecimalStorageFormat') = 1 ;
    GO
    
    -- Under the covers, this uses sys.dm_db_index_physical_stats to calculate the stats
    -- Documented in BOL CTP2 as sp_estimatedecimalcompression
    EXEC sp_estimated_rowsize_reduction_for_vardecimal 'Sales.SalesOrderDetail' ;
    
    -- Clean-up / disable vardecimal storage format 禁用 vardecimal存储格式
    USE AdventureWorks
    GO
    
    -- Disable table-level storage format  禁用表级别的vardecimal存储格式
    EXEC sp_tableoption 'Sales.SalesOrderDetail', 'vardecimal storage format', 0
    GO
    USE master;
    GO
    
    
    -- Disable database property
    EXEC sp_db_vardecimal_storage_format 'AdventureWorks', 'OFF' ;
    GO


    给我写信: QQ我:点击这里给我发消息


    2012年5月8日 13:31
  • 这是一个已知的设计缺陷。

    使用复制数据库向导的分离和附加方法传输数据库时,如果目标数据库引擎不是 SQL Server 2005 SP2 或更高版本的企业版(或开发版、评估版),你无法选择数据库。即使数据库没有实际使用Vardecimal格式的数据。

    你可以试试楼上提供的代码关闭vardecimal支持。我没试过,不知道是否有效。

    -- Disable database property
    EXEC sp_db_vardecimal_storage_format 'AdventureWorks', 'OFF' ;
    GO


    想不想时已是想,不如不想都不想。

    2012年5月8日 14:05
    版主
  • 这是一个已知的设计缺陷。

    使用复制数据库向导的分离和附加方法传输数据库时,如果目标数据库引擎不是 SQL Server 2005 SP2 或更高版本的企业版(或开发版、评估版),你无法选择数据库。即使数据库没有实际使用Vardecimal格式的数据。

    你可以试试楼上提供的代码关闭vardecimal支持。我没试过,不知道是否有效。

    -- Disable database property
    EXEC sp_db_vardecimal_storage_format 'AdventureWorks', 'OFF' ;
    GO


    想不想时已是想,不如不想都不想。

    目标数据库引擎也是“SqlServer2008”啊。。。

    Science and technology is my lover.

    你没仔细看吧?你的目标数据库引擎,是企业版(或开发版、评估版)吗?

    想不想时已是想,不如不想都不想。

    2012年5月10日 3:54
    版主
  • 可以,不过我说的方法不一定能解决你的问题,由于每次只允许发2张图片,所以我就分几个回帖来给你展示操作步骤吧

    步骤:

    1、打开SSMS,在你要进行数据库复制的数据库上右键属性

    2、选择恢复模式为 完整


    给我写信: QQ我:点击这里给我发消息

    2012年5月10日 4:30
  • 3、在SSMS里新建一个查询

    4、在里面写上语句 EXEC sp_db_vardecimal_storage_format '你的数据库名', 'OFF' ;
    GO


    给我写信: QQ我:点击这里给我发消息

    2012年5月10日 4:32
  • 5、再输入语句 :EXEC sp_db_vardecimal_storage_format
    GO

    执行后的结果应该是


    6、进行你自己的数据库复制操作

    给我写信: QQ我:点击这里给我发消息

    2012年5月10日 4:33
  • Did you check error message? What's sql agent service account by the way? Does it have proper file system permission on target server? Why don't use backup/restore to copy db? Much easier and no down time.
    2012年5月11日 3:17
  • 你点击“作业失败,有关详细信息”那个链接,看sqlserver提供了什么错误提示然后贴出来

    给我写信: QQ我:点击这里给我发消息

    2012年5月11日 3:32

全部回复

  • 会不会是权限的问题,你必须使用具来源和目的端都具有sysadmin权限的用户登入才行。

    http://msdn.microsoft.com/en-us/library/ms188664.aspx#Prerequisites


    以上說明若有錯誤請指教,謝謝。
    http://www.dotblogs.com.tw/terrychuang/

    2012年5月8日 7:43
  • 会不会是权限的问题,你必须使用具来源和目的端都具有sysadmin权限的用户登入才行。

    http://msdn.microsoft.com/en-us/library/ms188664.aspx#Prerequisites


    以上說明若有錯誤請指教,謝謝。
    http://www.dotblogs.com.tw/terrychuang/

    Hi,谢谢您。

    sysadmin权限???

    使用的“sa”账户啊,不行么?用“Windows”身份认证才行???


    Science and technology is my lover.

    2012年5月8日 10:48
  • 其实sysadmin是SQL Server的固定服务器角色,并非Windows帐户。

    所以你是用sa登入之后去作复制数据库的吗?


    以上說明若有錯誤請指教,謝謝。
    http://www.dotblogs.com.tw/terrychuang/

    2012年5月8日 12:34
  • 我的是使用sa帐户,是可以复制的


    给我写信: QQ我:点击这里给我发消息

    2012年5月8日 13:05
  • You like to copy db? Source db is CEMSDB, where is it? Can you post all steps you did?
    2012年5月8日 13:09
  • vardecimal是SQL2005 SP2推出的新的存储格式

    具体可以看以下文章

    关于SQL Server 2005 SP2中提供的Vardecimal存储格式

    1、你可以先选择数据库的简单恢复模式

    2、使用

    --禁用vardecimal存储格式
    EXEC sp_db_vardecimal_storage_format '你的数据库名', 'OFF' ;
    GO

    3、查询一下是否已经关闭

    EXEC sp_db_vardecimal_storage_format
    GO

    4、进行数据库复制

    有关启用或者禁用vardecimal的一些脚本:

    USE master ;
    GO
    
    -- Enable vardecimal on database 对数据库开启vardecimal存储格式
    EXEC sp_db_vardecimal_storage_format 'AdventureWorks', 'ON' ;
    GO
    
    
    -- Check the vardecimal storage format state for all databases in the instance 查询当前数据库实例里的所有数据库的vardecimal 的存储格式的状态
    EXEC sp_db_vardecimal_storage_format
    GO
    
    -- Enable vardecimal compression at the table level 允许在表级别开启vardecimal存储格式 的压缩
    USE AdventureWorks
    GO
    -- Note: The BOL example incorrectly references 'decimal data compression'
    EXEC sp_tableoption 'Sales.SalesOrderDetail', 'vardecimal storage format', 1
    GO
    
    -- Does not show vardecimal properties sp_help 命令不会显示vardecimal存储格式
    EXEC sp_help 'Sales.SalesOrderDetail'
    
    
    -- So, use the TableHasVarDecimalStorageFormat objectproperty 可以使用objectproperty查看vardecimal存储格式
    USE AdventureWorks ;
    GO
    SELECT name, object_id, type_desc
    FROM sys.objects 
    WHERE OBJECTPROPERTY(object_id, 
    N'TableHasVarDecimalStorageFormat') = 1 ;
    GO
    
    -- Under the covers, this uses sys.dm_db_index_physical_stats to calculate the stats
    -- Documented in BOL CTP2 as sp_estimatedecimalcompression
    EXEC sp_estimated_rowsize_reduction_for_vardecimal 'Sales.SalesOrderDetail' ;
    
    -- Clean-up / disable vardecimal storage format 禁用 vardecimal存储格式
    USE AdventureWorks
    GO
    
    -- Disable table-level storage format  禁用表级别的vardecimal存储格式
    EXEC sp_tableoption 'Sales.SalesOrderDetail', 'vardecimal storage format', 0
    GO
    USE master;
    GO
    
    
    -- Disable database property
    EXEC sp_db_vardecimal_storage_format 'AdventureWorks', 'OFF' ;
    GO


    给我写信: QQ我:点击这里给我发消息


    2012年5月8日 13:31
  • 这是一个已知的设计缺陷。

    使用复制数据库向导的分离和附加方法传输数据库时,如果目标数据库引擎不是 SQL Server 2005 SP2 或更高版本的企业版(或开发版、评估版),你无法选择数据库。即使数据库没有实际使用Vardecimal格式的数据。

    你可以试试楼上提供的代码关闭vardecimal支持。我没试过,不知道是否有效。

    -- Disable database property
    EXEC sp_db_vardecimal_storage_format 'AdventureWorks', 'OFF' ;
    GO


    想不想时已是想,不如不想都不想。

    2012年5月8日 14:05
    版主
  • 其实sysadmin是SQL Server的固定服务器角色,并非Windows帐户。

    所以你是用sa登入之后去作复制数据库的吗?


    以上說明若有錯誤請指教,謝謝。
    http://www.dotblogs.com.tw/terrychuang/

    是的,用Sa账户去复制数据库的。。。

    Science and technology is my lover.

    2012年5月9日 0:24
  • 这是一个已知的设计缺陷。

    使用复制数据库向导的分离和附加方法传输数据库时,如果目标数据库引擎不是 SQL Server 2005 SP2 或更高版本的企业版(或开发版、评估版),你无法选择数据库。即使数据库没有实际使用Vardecimal格式的数据。

    你可以试试楼上提供的代码关闭vardecimal支持。我没试过,不知道是否有效。

    -- Disable database property
    EXEC sp_db_vardecimal_storage_format 'AdventureWorks', 'OFF' ;
    GO


    想不想时已是想,不如不想都不想。

    目标数据库引擎也是“SqlServer2008”啊。。。

    Science and technology is my lover.

    2012年5月9日 0:27
  • 其实sysadmin是SQL Server的固定服务器角色,并非Windows帐户。

    所以你是用sa登入之后去作复制数据库的吗?


    以上說明若有錯誤請指教,謝謝。
    http://www.dotblogs.com.tw/terrychuang/

    Thank   a  lot...

    怎样使用“Sa账户”和“Windows”账户复制数据库呢???


    Science and technology is my lover.

    2012年5月10日 1:31
  • 我的是使用sa帐户,是可以复制的


    给我写信: QQ我:点击这里给我发消息

    谢谢。

    我用的也是Sa账户,但是复制选项“打不上勾”啊。。。


    Science and technology is my lover.

    2012年5月10日 1:32
  • vardecimal是SQL2005 SP2推出的新的存储格式

    具体可以看以下文章

    关于SQL Server 2005 SP2中提供的Vardecimal存储格式

    1、你可以先选择数据库的简单恢复模式

    2、使用

    --禁用vardecimal存储格式
    EXEC sp_db_vardecimal_storage_format '你的数据库名', 'OFF' ;
    GO

    3、查询一下是否已经关闭

    EXEC sp_db_vardecimal_storage_format
    GO

    4、进行数据库复制

    有关启用或者禁用vardecimal的一些脚本:

    USE master ;
    GO
    
    -- Enable vardecimal on database 对数据库开启vardecimal存储格式
    EXEC sp_db_vardecimal_storage_format 'AdventureWorks', 'ON' ;
    GO
    
    
    -- Check the vardecimal storage format state for all databases in the instance 查询当前数据库实例里的所有数据库的vardecimal 的存储格式的状态
    EXEC sp_db_vardecimal_storage_format
    GO
    
    -- Enable vardecimal compression at the table level 允许在表级别开启vardecimal存储格式 的压缩
    USE AdventureWorks
    GO
    -- Note: The BOL example incorrectly references 'decimal data compression'
    EXEC sp_tableoption 'Sales.SalesOrderDetail', 'vardecimal storage format', 1
    GO
    
    -- Does not show vardecimal properties sp_help 命令不会显示vardecimal存储格式
    EXEC sp_help 'Sales.SalesOrderDetail'
    
    
    -- So, use the TableHasVarDecimalStorageFormat objectproperty 可以使用objectproperty查看vardecimal存储格式
    USE AdventureWorks ;
    GO
    SELECT name, object_id, type_desc
    FROM sys.objects 
    WHERE OBJECTPROPERTY(object_id, 
    N'TableHasVarDecimalStorageFormat') = 1 ;
    GO
    
    -- Under the covers, this uses sys.dm_db_index_physical_stats to calculate the stats
    -- Documented in BOL CTP2 as sp_estimatedecimalcompression
    EXEC sp_estimated_rowsize_reduction_for_vardecimal 'Sales.SalesOrderDetail' ;
    
    -- Clean-up / disable vardecimal storage format 禁用 vardecimal存储格式
    USE AdventureWorks
    GO
    
    -- Disable table-level storage format  禁用表级别的vardecimal存储格式
    EXEC sp_tableoption 'Sales.SalesOrderDetail', 'vardecimal storage format', 0
    GO
    USE master;
    GO
    
    
    -- Disable database property
    EXEC sp_db_vardecimal_storage_format 'AdventureWorks', 'OFF' ;
    GO


    给我写信: QQ我:点击这里给我发消息


    好复杂,能简单的介绍下么???

    Science and technology is my lover.

    2012年5月10日 1:34
  • 这是一个已知的设计缺陷。

    使用复制数据库向导的分离和附加方法传输数据库时,如果目标数据库引擎不是 SQL Server 2005 SP2 或更高版本的企业版(或开发版、评估版),你无法选择数据库。即使数据库没有实际使用Vardecimal格式的数据。

    你可以试试楼上提供的代码关闭vardecimal支持。我没试过,不知道是否有效。

    -- Disable database property
    EXEC sp_db_vardecimal_storage_format 'AdventureWorks', 'OFF' ;
    GO


    想不想时已是想,不如不想都不想。

    目标数据库引擎也是“SqlServer2008”啊。。。

    Science and technology is my lover.

    你没仔细看吧?你的目标数据库引擎,是企业版(或开发版、评估版)吗?

    想不想时已是想,不如不想都不想。

    2012年5月10日 3:54
    版主
  • 可以,不过我说的方法不一定能解决你的问题,由于每次只允许发2张图片,所以我就分几个回帖来给你展示操作步骤吧

    步骤:

    1、打开SSMS,在你要进行数据库复制的数据库上右键属性

    2、选择恢复模式为 完整


    给我写信: QQ我:点击这里给我发消息

    2012年5月10日 4:30
  • 3、在SSMS里新建一个查询

    4、在里面写上语句 EXEC sp_db_vardecimal_storage_format '你的数据库名', 'OFF' ;
    GO


    给我写信: QQ我:点击这里给我发消息

    2012年5月10日 4:32
  • 5、再输入语句 :EXEC sp_db_vardecimal_storage_format
    GO

    执行后的结果应该是


    6、进行你自己的数据库复制操作

    给我写信: QQ我:点击这里给我发消息

    2012年5月10日 4:33
  • 5、再输入语句 :EXEC sp_db_vardecimal_storage_format
    GO

    执行后的结果应该是


    6、进行你自己的数据库复制操作

    给我写信: QQ我:点击这里给我发消息

    谢谢各位,谢谢。。。

    发现了是,目标数据库的版本问题,目标数据库是2005...现在换为“2008”的,可以复制了,但是发生了错误。详细情况如下:

    为什么会发生这样的错误???怎么办???

    数据库没有复制成功,目标服务器上没有这样的数据库。。。


    Science and technology is my lover.

    2012年5月11日 3:08
  • Did you check error message? What's sql agent service account by the way? Does it have proper file system permission on target server? Why don't use backup/restore to copy db? Much easier and no down time.
    2012年5月11日 3:17
  • 你点击“作业失败,有关详细信息”那个链接,看sqlserver提供了什么错误提示然后贴出来

    给我写信: QQ我:点击这里给我发消息

    2012年5月11日 3:32