Инструменты данных 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; 
Другие вопросы по тегам