Инструменты данных SQL Server (SSDT). Определите тип данных во время развертывания?
Кто-нибудь знает методику определения типа данных столбца во время развертывания с развертыванием SSDT / dacpac, в зависимости от того, какие функции доступны на целевом экземпляре SQL Server? Конкретный пример:
CREATE TABLE [HasBlob] (
[Id] INT PRIMARY KEY,
[Guid] [uniqueidentifier] ROWGUIDCOL NOT NULL UNIQUE,
[Data] VARBINARY(MAX) FILESTREAM NULL
)
В этом случае я хотел бы иметь возможность автоматически переключаться на обычный BLOB-объект (MAX) вместо FILESTREAM, если FILESTREAM не включен для экземпляра SQL Server.
1 ответ
Решение
Одним из способов будет запрос файловых групп текущей базы данных через sys.data_spaces
, например:
IF EXISTS(SELECT * FROM sys.data_spaces WHERE type = 'FD')
BEGIN
-- use create statement with FILESTREAM
END;