如何完成删除文件流和所有附加文件

2024-03-29

我已经在本地数据库上尝试了 MSSQL(2008R2 数据中心)的 FILESTREAM 功能来进行实验。真正的数据库运行在服务器上。我已经使用以下查询设置了整个 FILESTREAM:

/* CREATE FILESTREAM AND FILESTREAM TABLE */
USE [master]
GO
ALTER DATABASE SenONew
ADD FILEGROUP [FileStream]
CONTAINS FILESTREAM
GO
ALTER DATABASE SenONew
ADD FILE
(
NAME = 'fsSenONew',
FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQL\DATA\SenONew.ndf'
)
TO FILEGROUP [FileStream]
GO

USE [SenONew]
GO
CREATE TABLE Filestore(
    FileID int PRIMARY KEY,
    RowID uniqueidentifier ROWGUIDCOL NOT NULL UNIQUE DEFAULT NEWSEQUENTIALID(),
    FileDescr nvarchar(max),
    FileIndex varbinary(max) FILESTREAM NULL)
GO

我正在尝试添加一些文件然后删除它们。

现在,既然这只是一个实验,我也想摆脱它。我正在使用本地服务器来开发将在真实服务器上使用的数据库,因此我在本地服务器上创建备份,然后在真实服务器上恢复它,以便它得到更新(软件正在开发中,因此数据库结构和数据都发生了很大的变化,我需要对正在测试软件的真实服务器进行完整恢复)。

经过几个小时的搜索,我找不到任何关于我的问题的信息。

我明白我需要:

  1. 删除存储FILESTREAM信息的数据库表
  2. 我需要删除 FILESTREAM 的 FILE
  3. 删除文件组

所以我使用这个查询来删除我首先设置的所有内容:

/* DROP FILESTREAM TABLE AND FILEGROUP */
USE SenONew
DROP TABLE Filestore
GO

ALTER DATABASE SenONew
REMOVE FILE fsSenONew

ALTER DATABASE SenONew
REMOVE FILEGROUP [FileStream]
GO

所以我做了我应该做的一切,而且也顺利完成。因此,当我输入我的文件组、文件和文件位置时,我看到它们都已完全删除:

但是,当我对本地数据库(包括已删除的文件流、文件路径和文件组)进行备份并尝试用它恢复服务器时,出现错误。

创建备份的 SQL:

/* CREATE BACKUP OF DATABASE WITHIN CURRECT CONNECTION */
DECLARE @FileName2 nvarchar(250)
SELECT @FileName2 = (SELECT 'C:\SenO BackUp\' + convert(nvarchar(200),GetDate(),112) + ' SenONew.BAK')
BACKUP DATABASE SenONew TO DISK=@FileName2
GO

然后在服务器上进行恢复:

/* CREATE RESTORE OF DATABASE WITHIN REAL SERVER CONNECTION */
use master
alter database SenONew set offline with rollback immediate;

DECLARE @FileName2 nvarchar(250)
SELECT @FileName2 = (SELECT '' + convert(nvarchar(200),GetDate(),112) + ' SenONew.BAK')
RESTORE DATABASE SenONew
FROM DISK = @FileName2

alter database SenONew set online with rollback immediate;

我收到以下错误:

*(消息 5121,级别 16,状态 2,第 7 行 “C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQL\DATA\SenONew.ndf”指定的路径不在有效目录中。

消息 3156,级别 16,状态 3,第 7 行文件“fsSenONew”无法恢复到“C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQL\DATA\SenONew.ndf”。使用WITH MOVE 来标识文件的有效位置。

消息 3119,级别 16,状态 1,第 7 行 在规划 RESTORE 语句时发现了问题。之前的消息提供了详细信息。

消息 3013,级别 16,状态 1,第 7 行 RESTORE DATABASE 异常终止。 )*

我删除了.ndf FILESTREAM位置,为什么它是指定路径?另外,为什么 fsSenONew 试图恢复?我无法理解它。是否有我需要删除的内部路径?


您可以检查:

SELECT * FROM SenONew.sys.data_spaces WHERE name = 'FileStream' 

它应该返回 0 行。

有一个从 SQL Server 2008 数据库中删除 FILESTREAM 功能的过程:

ALTER TABLE Filestore DROP column FileIndex
GO
ALTER TABLE Filestore SET (FILESTREAM_ON="NULL")
GO
ALTER Database SenONew REMOVE FILE fsSenONew
GO
ALTER Database SenONew REMOVE FILEGROUP [FileStream]
GO

如中所述本文 http://beyondrelational.com/modules/2/blogs/28/posts/10406/completely-removing-filestream-features-from-a-sql-server-2008-database.aspx。但您执行的步骤应该做同样的事情。

你的问题确实很奇怪,但我建议你尝试使用以下

USE SenONew
EXEC Sp_help 
EXEC Sp_helpfile 
EXEC Sp_helpfilegroup 

您可能会发现一些可疑的东西,例如使用该 FILEGROUP 的另一个表。

我已完全按照您描述的步骤进行操作,但无法重现您的问题。检查“恢复数据库”屏幕的外观。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何完成删除文件流和所有附加文件 的相关文章

  • 将一行字段设置为其他 2 个字段的乘积

    我有一个这样的SQL表结构 Id A B C D 1 1 5 6 25 2 2 10 5 25 3 3 7 4 25 4 1 6 5 26 5 2 10 5 26 6 3 8 3 26 我想写一个脚本 它将更新所有B 和 C 列在行中A 3
  • 制作 SQL Server 转储并将该转储导入另一个 SQL Server 的最佳(最简单)方法

    我想从一台服务器在 SQL Server 中实现数据库导出 转储 并将该转储导入到另一台 SQL Server 中 并且不一定使用相同的架构名称 例如 如果我准备了一个数据库 其中包含用于为新客户实施新数据库的所有数据集 则该数据库名为 D
  • 如何研究.NET 中的非托管内存泄漏?

    我有一个通过 MSMQ 运行的 WCF 服务 内存随着时间的推移逐渐增加 表明存在某种内存泄漏 我在本地运行该服务并使用 PerfMon 监视一些计数器 CLR 内存托管堆字节总数保持相对恒定 而进程的私有字节随着时间的推移而增加 这让我相
  • 从同一个表复制行并更新 ID 列

    我有下表 我已将产品 B 插入其中 它给我的 ID 为 15 然后我有定义表 如下所示 我想选择 ProdID 14 的 ProductDefinition 行并复制相同的行并将其插入到 ProdID 15 中 如下所示 如何使用 SQL
  • 从 Perl 脚本 DBI 关闭 MSSQL 服务器

    我正在写一个 perl 脚本 其中我必须关闭我的 mssql 服务器 做一些操作 然后我必须重新启动它 我知道一种方法是使用 netstat 来停止服务 但我不能使用它 所以我尝试安装 DBI 和 DBD ODBC 模块 我可以通过以下代码
  • 如何将 OLE 自动化日期值转换为 SQL Server 中的日期

    我的应用程序存储日期作为 OLE 自动化与DateTime ToOADate 命令 我需要创建一个 SQL 视图来显示存储的日期 如何快速将双精度数转换为日期 Does SELECT CAST CASE WHEN OLEFLOAT gt 0
  • 收到警告:空值被聚合或其他 SET 操作消除

    我有这个架构 create table t id int d date insert into t id d values 1 getdate 2 NULL 做的时候 declare mindate date select mindate
  • 验证 C# 中的小数是否存储在 SQL Server 中

    我有一个十进制数据库列decimal 26 6 据我所知 这意味着精度为 26 小数位数为 6 我认为这意味着该数字的长度总共可以是 26 位数字 其中小数点后可以有 6 位数字 在我的 WPF C 前端中 我需要验证传入的小数 以便我可以
  • 我如何以编程方式从数据库表生成“插入”数据脚本文件?

    有没有一个优雅的基于面向对象的框架 这是我编写的一些代码 用于为数据库中的每个表生成 插入 存储过程 它还处理返回那些具有标识列的表的新 ID 它使用 SQL SMO 其中一些内容与我的项目有些特定 因此如果您有任何疑问 请告诉我 void
  • 自动打开命名管道和 tcp\ip

    我正在安装一个需要修改 SQL Server 的新产品 具体来说 启用 tcp ip 并打开命名管道 我知道如何手动完成 我想要的是一种通过 SQL 或 C 代码为新客户自动化执行此操作的方法 我希望有任何关于正确方向的建议 您可以使用 C
  • Microsoft 同步框架 - 双向同步如何工作?

    我有两个客户端 A 和 B 两个客户端都有相同的同步本地数据缓存 如果客户端 A 对记录 X 进行离线编辑 然后客户端 B 也离线编辑记录 X 并与服务器同步 则当客户端 A 与服务器同步时 客户端 B 所做的更改不会反映出来 并且无论进行
  • 为列名创建动态选择获取值 - 在 SQL Server 中

    请帮助我创建一个选择 SQL 语句 其中的结果列名称是从原始表中的列值获取的 表名是Device Part 用户可以输入很多DeviceCode其中有许多动态PartTypeName PartTypeName 值为PartInfo 这可能有
  • BCP 语法问题

    总之 我正在尝试编写一个可以每天从 SQL Server 2008 实例上的批处理文件运行的查询 我以前从未使用过 BCP 但在查看了一些在线示例后 我尝试创建一个真正的基本查询来测试计算机上的进程和权限 然后再将选择查询扩展到所需的数据集
  • 需要帮助在 MS Access 中实施完全外部联接

    我无法让查询在 Access 中正常工作 我需要 dbo cardpurchases 和 dbo vendors 上的完整外部联接 以便所有所有供应商都将出现在查询中 无论是否在该供应商处进行购买 但 Access 不支持完全外部联接 我还
  • SSIS ForEach File 循环 - 将文件名插入表

    我正在构建一个 SSIS 包 使用 VS 2017 来从特定文件夹加载一堆 CSV 文件 使用 ForEach File 循环效果很好 数据流任务具有平面文件源和 OLE DB 目标 我希望能够将文件名以及 CSV 文件中的数据保存在同一个
  • Sql 查询抛出标识符太长。最大长度为 128

    我正在处理一个简单的更新查询 在执行查询时看到以下错误 我非常清楚 这根本不应该是一个长度问题 可能是什么问题 Error 以identifier开头的标识符太长 最大长度为 128 我的查询 update dbo DataSettings
  • 如何在 where 子句中使用别名? [复制]

    这个问题在这里已经有答案了 可能的重复 在 WHERE 子句中引用列别名 https stackoverflow com questions 8370114 referring to a column alias in a where cl
  • 在调用存储过程 Sql Server 2008 时使用嵌套存储过程结果

    是否可以在另一个存储过程中使用一个存储过程的结果 I e CREATE PROCEDURE dbo Proc1 ID INT mfgID INT DealerID INT AS BEGIN DECLARE Proc1Result UserD
  • SQL 解析键值字符串

    我有一个像这样的逗号分隔字符串 key1 value1 key2 value2 key3 value3 key1 value1 1 key2 value2 1 key3 value3 1 我想将它解析成一个如下所示的表 Key1 Key2
  • C# 事务中的事务

    我正在使用 C 将发票的平面文件导入到数据库中 如果遇到问题 我将使用 TransactionScope 回滚整个操作 这是一个棘手的输入文件 因为一行不一定等于一条记录 它还包括链接记录 发票将包含标题行 行项目和总计行 有些发票需要跳过

随机推荐

  • 检查文件是否存在 [BASH]

    如何检查 bash 中文件是否存在 当我尝试这样做时 FILE1 OPTIND 1 if e FILE1 then echo requested file doesn t exist gt 2 exit 1 elif
  • 在php中将文本转换为图像[重复]

    这个问题在这里已经有答案了 我想设置从表单字段获取的文本字符串的样式 然后将其转换为透明的 PNG alpha BG 这可以用 PHP 实现吗 如果是这样 请告诉我如何实现这一点 是的 这很有可能 您将遵循与我们在生成验证码图像时相同的技术
  • WordPress:用于提取特色图像 URL 的 REST API 插件

    我已在博客上安装了 WordPress REST API 插件 我想使用它将博客文章中的内容提取到另一个网站内的面板窗口中 文本内容没问题 但我不确定是否能获取 特色图片 URL 我想要 URL 这样我就可以将其存储在变量中 然后将其用作面
  • 无法连接到任何 X 显示器:Google Colab 运行时

    我现在正在研究分类问题 并尝试在线完成所有工作 而无需访问本地计算机 因此 我已将数据添加到驱动器并将驱动器安装在 Colab 上 现在我想注释我的数据并决定使用LabelImg https github com tzutalin labe
  • 在 App Engine 数据存储区中查找重复项

    我的数据存储区中有一些重复的元素 不是整行 而是其中的大部分字段 找到他们的最佳方式是什么 我有重复的整数和字符串字段 以防比较一个比另一个更快 Thanks 一种愚蠢但快速的方法是获取您关心的字段 将它们连接为长字符串并将它们存储为DB
  • 如何将新字体导入项目 - Angular 5

    我想将新字体导入到我的 Angular 5 项目中 我努力了 1 将文件复制到assets fonts 2 将其添加到 angular cli json styles 但我检查过该文件不是 css 它是一个 otf这就像一个 exe 它是一
  • 多人浏览器游戏 [Java]

    我一直在开发一个名为 Tarneeb 的小型纸牌游戏 游戏本身看起来像桥牌游戏 但规则不同 无论如何 我使用 Java 6 作为独立的桌面应用程序完成了整个游戏 这是一个picture http photos g ak fbcdn net
  • python argparse 在描述后打印用法文本

    有没有办法使用 python argparse 在描述文本后打印用法文本 我的命令行 argparse 正在工作 但我想在使用信息之前打印版本信息 Edit version 1 0 usage blahcmd h help some lov
  • 为什么 LocalBroadcastManager 无法在服务中工作?

    我使用了服务 但没有收到任何广播消息 需要快速反应 这是我使用的意图过滤器字符串 public class AppConstant public static final String FILTER com sample hmi REQUE
  • 重叠的极坐标图和散点图

    感谢这非常有帮助post https stackoverflow com questions 9071084 polar contour plot in matplotlib best modern way to do it 我终于弄清楚如
  • 如何监控每个scroll Id的scroll API使用的资源?调用clearScroll Api 时会发生什么

    如何监控每个滚动 ID 的滚动 API 使用的内存资源或搜索上下文 这些搜索上下文存储在哪里 有办法查看或监控它们吗 java api 的参数 keepAlive 意味着什么 public SearchRequest roll TimeVa
  • 嵌套推送动画iOS7 bug?

    我刚刚在经过错误测试的应用程序中遇到了问题 我把头撞到墙上才明白为什么会出现这个错误 2013 11 25 09 02 55 687 186 60b nested push animation can result in corrupted
  • 将原始文件复制到 SD 卡中?

    我的里面有一些音频文件res raw文件夹 由于某些原因 我想将此文件复制到我的 SDCard 当我的应用程序启动时 我怎样才能做到这一点 有人指导我吗 从资源中读取 写入SD卡上的文件 InputStream in getResource
  • Python 异常处理 - 最佳实践

    我正在编写一个访问数据库的 python 程序 我想在发出 http 请求时捕获三种类型的异常 超时 网络错误和 http 错误 我正在寻找处理这种情况的最佳方法 我需要在代码的多个区域多次检查这些异常 每次都会看起来像这样 try som
  • 将 scipy curve_fit 用于可变数量的参数

    我有一个拟合函数 其形式为 def fit func x data a b c N 其中a b c是长度为N的列表 其中的每个条目都是scipy optimize curve fit 中要优化的可变参数 N是用于循环索引控制的固定数字 下列
  • Html.EditorForModel 和隐藏编辑中的元素

    我使用以下代码使用 ASP NET MVC 3 为我的模型呈现编辑器 它工作完美 除了我不希望用户查看或编辑我的对象中的 Id 字段
  • psycopg2 ImportError 的 Django 错误:DLL 加载失败

    您好 当我尝试在虚拟环境中运行syncdb 时 我收到此错误 如果我将 psycopg2 文件夹复制到我的项目文件夹 其中我有manage py and settings py 然后这个错误就消失了 但是当代码推送到heroku时我仍然遇到
  • 导航栏下拉菜单不适用于移动设备

    我在 Bootstrap 3 中遇到了导航栏问题 我的菜单项之一是下拉菜单 它在我的笔记本电脑上运行良好 但在我的 Android 手机上不起作用 具体来说 当按下手机上的下拉菜单项时 没有任何反应 我已经在谷歌 这个网站和其他几个网站上搜
  • 排除子项目提交 Git

    我怎样才能排除Subproject commit 我在子模块中没有更改任何内容 仅从远程存储库中提取更改 我认为在创建子模块时 我在主存储库中提交了一些不需要的东西 有任何想法吗 1 当我创建子模块时git diff在主存储库中还显示 su
  • 如何完成删除文件流和所有附加文件

    我已经在本地数据库上尝试了 MSSQL 2008R2 数据中心 的 FILESTREAM 功能来进行实验 真正的数据库运行在服务器上 我已经使用以下查询设置了整个 FILESTREAM CREATE FILESTREAM AND FILES