Вы можете удалить столбец, изменить функцию и добавить столбец обратно:
ALTER TABLE [dbo].[TestTable]
DROP COLUMN [Test];
GO
ALTER FUNCTION [dbo].[MyFunctionTest]
(
@foo int
)
RETURNS int
WITH SCHEMABINDING
AS
BEGIN
RETURN @foo * 2
END
GO
ALTER TABLE [dbo].[TestTable]
ADD [Test] AS ([dbo].[MyFunctionTest]([Foo])) PERSISTED
Создание новой функции также будет означать, что вам нужно удалить столбец и добавить его обратно, так как вычислено столбцы не могут быть изменены .
Вы сталкиваетесь с ограничением MAX_PATH. Поскольку работа вокруг Вас должна смочь к P/Invoke непосредственно к CopyFile kernel32.dll, функционируют и используют "\\? \" Префикс перед целевым путем для предотвращения удара проблемы MAX_PATH.
Обратите внимание, что, в то время как Вы можете скопировать файл в пути, большинство приложений не сможет открыть его, так как они также ограничены MAX_PATH.
Хороший обзор проблемы может быть найден здесь: http://blogs.msdn.com/bclteam/archive/2007/02/13/long-paths-in-net-part-1-of-3-kim-hamilton.aspx
Некоторый пример кода P/Invoking в эти методы с помощью C# может быть найден в части 2, здесь: http://blogs.msdn.com/bclteam/archive/2007/03/26/long-paths-in-net-part-2-of-3-long-path-workarounds-kim-hamilton.aspx
Библиотека, что schnaader, связанный с, похож на него, сохранит Вас проблема P/Invoking в kernel32.dll, не уверенный, если Вы захотите взять зависимость от внешнего dll или нет.
Существуют подсказки для сокращения имени... посмотрите раздел, названный "Причина 4: Файлы существуют в путях, которые глубже, чем символы MAX_PATH" по http://support.microsoft.com/?kbid=320081#
Я получил решение относительно этой проблемы.
На R&D я нашел, что мы можем переименовать указанный каталог пути даже при том, что общая длина, превышают 260 символов, и затем мы можем скопировать файл от указанного местоположения до нового (Временного) местоположения для нашей цели сканирования. И наконец мы можем снова переименовать имя пути к файлу с исходным.
То, что я обычно делаю в этом экземпляре:
1) Считайте имя файла length
2) Если FileNameLength > 259
затем обрежьте имя файла достаточно, чтобы обработать новое имя и затем скопировать файл с обрезанным целевым именем.