Я предлагаю написать функцию Join
, чтобы объединить уникальные части обратно в одну строку (имеется один доступный для массивов, но не для какой-либо другой коллекции):
Function Join(Iterable As Variant, Optional Delimiter As String = ",") As String
Dim notFirst As Boolean
Dim item As Variant
For Each item In Iterable
If notFirst Then
Join = Join & Delimiter
Else
notFirst = True
End If
Join = Join & item
Next
End Function
Затем используйте Split
, чтобы разбить строку на массив и Scripting.Dictionary
, чтобы обеспечить уникальность:
Function RemoveDuplicates(s As String, Optional delimiter As String = ",") As String
Dim parts As String()
parts = Split(s,delimiter)
Dim dict As New Scripting.Dictionary
Dim part As Variant
For Each part In parts
dict(part) = 1 'doesn't matter which value we're putting in here
Next
RemoveDuplicates = Join(dict.Keys, delimiter)
End Function
Ограбьте, существует таблица 'sysdiagrams', который содержит определения схемы. Попытайтесь составить таблицу и вставить данные из старой базы данных. Это должно работать.
HTH
Принятие Вас имеет доступ к обеим базам данных в экземпляре SQL Server.
Включают Схемы в новой базе данных:
В новой базе данных нажимают на папку "Database Diagrams". Studio управления SQL-сервером предложит Вам к схемам enble. Если Вы хорошо этот шаг, у Вас будет sysdiagrams таблица в базе данных.
Затем выполняют следующее:
INSERT INTO newdb.dbo.sysdiagrams
SELECT name, principal_id,[version], [definition]
FROM olddb.dbo.sysdiagrams
Вы можете сценарий схемы ( ссылка архива ) в .sql файл...