sql-server - 如何修复,操作系统返回错误 '0xc0000033(Object Name invalid.)',试图在 FILESTREAM 数据库中插入图像数据
问题描述
我创建了一个带有 FILESTREAM 文件组的数据库以及一个用于存储图像的表。尝试插入数据时...
USE Images
GO
INSERT INTO ReceivedImages (ReceiveID, ImageData, URowID)
VALUES (23, CAST('My image data' AS varbinary(max)), NEWID())
GO
我收到以下错误消息:
操作系统在“E:\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\DATA\TPImages\fdfbf99c-3b4b-4a03-87ae-15b3086639c8\345191cc”上尝试“NtCreateFile”时返回错误“0xc0000033(对象名称无效。)” -a1d2-4db3-8e69-5da238c7e641\00000025-00000302-0003'。
如果您知道如何解决此问题,请发布您的答案。谢谢!
我的开发环境:Windows Server 2016 Standard vm,16Gb RAM,64 位。SqlServer 2019 (15.0.2080)。
用于创建数据库和表的脚本如下...
USE [master]
GO
-- Get the SQL Server data path.
DECLARE @data_path nvarchar(256);
SET @data_path = (SELECT SUBSTRING(physical_name, 1, CHARINDEX(N'master.mdf', LOWER(physical_name)) - 1)
FROM master.sys.master_files
WHERE database_id = 1 AND file_id = 1);
-- Execute the CREATE DATABASE statement.
EXECUTE ('CREATE DATABASE Images
ON PRIMARY
(
NAME = Images_data
,FILENAME = ''' + @data_path + 'Images_data.mdf''
,SIZE = 7MB
,MAXSIZE = 2750MB
,FILEGROWTH = 10%
),
FILEGROUP FSTPImages CONTAINS FILESTREAM
(
NAME = TPIMAGES
, FILENAME = ''' + @data_path + '\TPImages''
, MAXSIZE = 10000 MB
-- SIZE and FILEGROWTH should not be specified here.
-- If they are specified an error will be raised.
)
LOG ON
(
NAME = Images_log
,FILENAME = ''' + @data_path + 'Images_log.ldf''
,SIZE = 5MB
,MAXSIZE = 25MB
,FILEGROWTH = 5MB
)'
);
GO
ALTER DATABASE [Images] SET AUTO_SHRINK ON
GO
USE [Images]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
DROP TABLE IF EXISTS dbo.ReceivedImages
GO
CREATE TABLE [dbo].[ReceivedImages] (
ImageID BIGINT IDENTITY(6999, 1) NOT NULL
, ReceiveID INT NOT NULL
, ExpiryDate DATETIME NOT NULL CONSTRAINT [DF_ReceivedImages_ExpiryDate] DEFAULT(DATEADD(d, 32, CURRENT_TIMESTAMP))
, ImageData VARBINARY(MAX) FILESTREAM NULL
, URowID UNIQUEIDENTIFIER ROWGUIDCOL NOT NULL CONSTRAINT [UX_ReceivedImages_URowID] UNIQUE WITH FILLFACTOR = 70 --must have indexed rowguidcol to accompany FILESTREAM column.
, CONSTRAINT [PK_ReceivedImages] PRIMARY KEY NONCLUSTERED
(ImageID DESC)
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 90) ON [PRIMARY]
)
GO
DROP INDEX IF EXISTS [IX_ReceivedImages_ReceiveID_Incl_ImageData] ON [dbo].[ReceivedImages]
GO
CREATE CLUSTERED INDEX [IX_ReceivedImages_ReceiveID] ON [dbo].[ReceivedImages]
([ReceiveID] ASC)
WITH (ONLINE = OFF, PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 90) ON [PRIMARY]
GO
DROP INDEX IF EXISTS [IX_ReceivedImages_ExpiryDate] ON [dbo].[ReceivedImages]
GO
CREATE NONCLUSTERED INDEX [IX_ReceivedImages_ExpiryDate] ON [dbo].[ReceivedImages]
([ExpiryDate])
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 90) ON [PRIMARY]
GO
ALTER AUTHORIZATION ON [dbo].[ReceivedImages] TO SCHEMA OWNER
GO
解决方案
推荐阅读
- python - 我正在使用 VS Code 使用 python 对 EV3 进行编程,但我的红外传感器无法正常工作
- mysql - 如何从 MySQL 中的三个不同相关表中组合并获取总和?
- android - Smartech pushToken/oldPushToken 为空
- c++ - Cuda GPU编译,我认为它没有使用GPU
- git - 将私有 GitHub 存储库所有权转移给 Bitbucket 组织
- angular - 如何正确地在 NgModule 上声明组件,因为它可以在路由模块中可见?
- javascript - Discord 机器人在再次使用命令之前显示剩余冷却时间
- python - python整数格式转换
- css - CSS 列布局(flexbox、float、columns)
- json - 如何根据key中的字符串获取json字符串的key和value