Я создал таблицу со столбцом, к которому применен атрибут FILESTREAM, например:
CREATE TABLE dbo.FileStorage
(
[ID] [uniqueidentifier] ROWGUIDCOL NOT NULL UNIQUE,
[Filename] [nvarchar](255) NOT NULL,
[Data] [varbinary](max) FILESTREAM NULL
)
GO
В хранимой процедуре я ссылаюсь на функцию PathName()
, которая должна быть доступна длястолбец Data
выше:
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, SQL Server Management Studio не сотрудничал.Атрибут не отображается на панели свойств столбца, и когда я создавал таблицу, атрибут FILESTREAM не отображается.
Обновление : еще одна странность заключается в том, что моя таблица FileStorage неникогда не появляются в списке таблиц, представленных SSMS intellisense.
В чем же дело?Как я могу манипулировать или проверять атрибут FILESTREAM в SSMS?