Используя PowerShell с.NET 3,5 времени выполнения/библиотеки

Select * from indexed_view не гарантирует ничего о порядке, возвращаемом из запроса. (как следует из комментария). Поэтому, пожалуйста, не думайте, что или ваше приложение может сломаться.

Что касается «почему вы не можете создать индексированное представление для системных таблиц?» есть несколько причин для этого.

  1. Вы можете создать ограничения для индексированных представлений, которые приведут к сбою некоторых системных команд DDL (чего не хотелось бы делать обычному пользователю).
  2. Системные таблицы являются собственно представлениями. Существуют разные базовые таблицы, и они не отображаются напрямую (хотя вы можете увидеть их в showplan). Итак, мы не позволяем вам привязываться к внутренним таблицам. Несмотря на то, что SQL редко встречается, они могут изменить эти представления (при обновлении основной версии) таким образом, что это может нарушить любые индексированные представления, созданные ранее
  3. Наконец, существует совершенно другой путь кода для реализации обновления системных таблиц (представлений). , Он не использует обычные операторы обновления. Существует много специальной логики для блокировок, защелок, поддержки системных кэшей и т. Таким образом, логика для поддержки индексированных представлений не будет работать на этих объектах. [Все это было сделано давно во имя производительности / масштаба]
7
задан GEOCHET 10 February 2009 в 14:48
поделиться

4 ответа

Если у Вас есть 3,5 установленных в Вашей системе, именно это Вы получите при выполнении PowerShell.

PowerShell, только "требует" 2.0, но 3.0, и 3.5 совместимы и автопередают при установке. В PowerShell V2 мы на самом деле надеемся видеть, какую версию Вы имеете и "освещаете" определенные функции (например, PowerShell_ISE, и-GridView доступны, когда Вы имеете 3.51).

Экспериментируйте!Приятного отдыха! Участвуйте!

Jeffrey Snover [MSFT] архитектор партнера по управлению Windows

8
ответ дан 6 December 2019 в 10:54
поделиться

Пока Ваш разбирающийся в Вашем полностью определенном имени, я не вижу, почему это не работало бы:

[System.Reflection.Assembly]::Load("System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089")

Я только использовал Linq, поскольку это было первым, которое придет на ум. В той точке загружается ddl, и можно создавать/использовать объекты из этого.

4
ответ дан 6 December 2019 в 10:54
поделиться

PowerShell был создан против 2,0, таким образом, у Вас нет опций, но иметь 2,0 существующих, по крайней мере. Но как James говорит, можно загрузить 3,0 и 3,5 функциональности путем загрузки соответствующего блока. LINQ является хорошим примером от 3,5, но можно также сделать WPF (3.0) от PowerShell. Помните STA и MTA для WPF, хотя, поскольку только PowerShell v2 имеет полную поддержку WPF (полная поддержка привязки потока).

3
ответ дан 6 December 2019 в 10:54
поделиться

3.5 эффективно ДОПОЛНЕНИЕ для 2,0. То есть нет никаких замененных классов в 3,5; это не замена. CLR (общеязыковая среда выполнения) все еще v2.0.

3
ответ дан 6 December 2019 в 10:54
поделиться
Другие вопросы по тегам:

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