SQL Server: Как сказать, является ли база данных системной базой данных?

Обновление: Добавленный Файл. Существует проверка на комментарий (2012 19 июня)

Вот - то, что я использовал в VB.NET. По существу то же, как представлено, кроме я обычно не хотел создавать папку сразу.

преимущество для использования GetRandomFilename - то, что оно не создает файл, таким образом, Вы не должны мыться если Ваше использование названия чего-то другого, чем файл. Как использование его для имени папки.

Private Function GetTempFolder() As String
    Dim folder As String = Path.Combine(Path.GetTempPath, Path.GetRandomFileName)
    Do While Directory.Exists(folder) or File.Exists(folder)
        folder = Path.Combine(Path.GetTempPath, Path.GetRandomFileName)
    Loop

    Return folder
End Function

Случайный Пример Имени файла:

C:\Documents and Settings\username\Local Settings\Temp\u3z5e0co.tvq

Вот изменение с помощью Гуида для получения временного имени папки.

Private Function GetTempFolderGuid() As String
    Dim folder As String = Path.Combine(Path.GetTempPath, Guid.NewGuid.ToString)
    Do While Directory.Exists(folder) or File.Exists(folder)
        folder = Path.Combine(Path.GetTempPath, Guid.NewGuid.ToString)
    Loop

    Return folder
End Function

гуид Пример:

C:\Documents and Settings\username\Local Settings\Temp\2dbc6db7-2d45-4b75-b27f-0bd492c60496

14
задан Vinko Vrsalovic 30 November 2009 в 10:50
поделиться

2 ответа

Вы можете положиться на функцию DB_ID () <= 4

Вам придется очень много работать, чтобы это изменить ...

0
ответ дан 1 December 2019 в 15:02
поделиться

нет такой опции AFAIK. Я думаю, вы можете проверить идентификатор sys.databases.owner_sid = 0x01.

Я не думаю, что вам нужно беспокоиться о том, что MS изменит имена системных баз данных. если бы они сделали это, вам не пришлось бы беспокоиться об этом как минимум 20 лет :)

-6
ответ дан 1 December 2019 в 15:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: