我已经创建了一个带有FILESTREAM属性的列的表,就像这样:
在存储过程中,我正在引用应该可用于上述
然而,当我执行上述脚本创建存储过程时,SSMS打印出一个错误:“函数PathName仅适用于具有FILESTREAM属性的列。”。我确保已经打开了FILESTREAM属性(并且数据库支持FILESTREAM),并且我甚至已经向表中添加了一个文件。
当我尝试验证该列确实是FILESTREAM列时,SQL Server Management Studio并没有合作。该属性不会出现在列属性窗格中,并且当我将表脚本化时,FILESTREAM属性也不会出现。
更新:另一个奇怪之处是,我的FileStorage表永远不会出现在由SSMS智能感知提供的表列表中。
怎么回事?我如何在SSMS中操作或验证FILESTREAM属性?
CREATE TABLE dbo.FileStorage
(
[ID] [uniqueidentifier] ROWGUIDCOL NOT NULL UNIQUE,
[Filename] [nvarchar](255) NOT NULL,
[Data] [varbinary](max) FILESTREAM NULL
)
GO
在存储过程中,我正在引用应该可用于上述
Data
列的PathName()
函数。CREATE PROCEDURE GetPathName
-- Add the parameters for the stored procedure here
@fileId uniqueidentifier,
@filePath nvarchar(max) output
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for procedure here
SELECT @filePath = Data.PathName()
FROM dbo.FileStorage
WHERE ID = @fileId
END
GO
然而,当我执行上述脚本创建存储过程时,SSMS打印出一个错误:“函数PathName仅适用于具有FILESTREAM属性的列。”。我确保已经打开了FILESTREAM属性(并且数据库支持FILESTREAM),并且我甚至已经向表中添加了一个文件。
当我尝试验证该列确实是FILESTREAM列时,SQL Server Management Studio并没有合作。该属性不会出现在列属性窗格中,并且当我将表脚本化时,FILESTREAM属性也不会出现。
更新:另一个奇怪之处是,我的FileStorage表永远不会出现在由SSMS智能感知提供的表列表中。
怎么回事?我如何在SSMS中操作或验证FILESTREAM属性?
FILESTREAM
。因此,看起来微软已经发布了SQL Server 2008 R2的更新。 - James L.