Как я редактирую текстовое поле (или ntext) в SQL Server 2000 или 2005 с помощью GUI?

Как я уже упоминал в своем комментарии, для достижения того, что вы хотите, требуется изменение дизайна. Вот мое предложение:

Поскольку ваша проблема связана со структурой таблицы продуктов, поскольку вы не знаете, что каждая компания хочет хранить в качестве информации для своего продукта, вы можете сделать это следующим образом: (Я объясню позже).

 public class Company
    {
        [Key]
        public int Id { get; set; }

        [Display(Name = "Name")]
        [Required]
        public string Name { get; set; }

        [Display(Name = "Description")]
        public string Description { get; set; }

        [Required]
        [Display(Name = "Created date")]
        [DataType(DataType.DateTime)]
        public DateTime CreatedDate { get; set; }

        public virtual ICollection<Product> Prodcuts { get; set; }

    }

    public class Product
    {
        [Key]
        public int Id { get; set; }

        [Display(Name="Name")]
        [Required]
        public string Name { get; set; }

        [Required]
        [Display(Name = "Created date")]
        [DataType(DataType.DateTime)]
        public DateTime CreatedDate { get; set; }

        [Required]
        [ForeignKey("Company")]
        [Display(Name = "Company")]
        public int CompanyID { get; set; }
        public virtual Company Company { get; set; }

        public virtual ICollection<ProductField> Fields { get; set; }

    }

    public class ProductField
    {
        [Key]
        public int Id { get; set; }

        [Display(Name = "Value")]
        [Required]
        public string Value { get; set; }

        [Required]
        [ForeignKey("Product")]
        [Display(Name = "Product")]
        public int ProductID { get; set; }
        public virtual Product Product { get; set; }

        [Required]
        [ForeignKey("Field")]
        [Display(Name = "Field")]
        public int FieldID { get; set; }
        public virtual Field Field { get; set; }

        [Required]
        [Display(Name = "Created date")]
        [DataType(DataType.DateTime)]
        public DateTime CreatedDate { get; set; }
    }


public class Field
    {
        [Key]
        public int ID { get; set; }

        [MaxLength(100)]
        [Index("ActiveAndUnique", 1, IsUnique = true)]
        [Required]
        [Display(Name = "Name")]
        public string Name { get; set; }

        [Display(Name = "Description")]
        public string Description { get; set; }

        [Required]
        [Display(Name = "Created date")]
        [DataType(DataType.DateTime)]
        public DateTime CreatedDate { get; set; }
    }

Объяснение кода:

Этот подход дает вам больший контроль над вашими данными без необходимости создавать таблицу для каждой информации о продукте.

Компания: Я начал с создания таблицы компании со свойством навигации, которое будет лениво загружать все связанные с ним продукты (если ленивая загрузка включена). Затем В таблице продуктов я добавил FK в ссылаться на компанию.

Поле: Поскольку вы упомянули, что не знаете, что у компании будет в качестве информации о продукте, вы можете создать новое поле и связать его с продуктом, используя таблицу ProductField.

[ 118] ProductField: Эта таблица будет действовать как «многие ко многим» между вашим продуктом и полем, в результате вы можете добавить столько полей к новому продукту, не изменяя структуру таблицы продуктов. или создайте новый. Вы также можете повторно использовать то же поле, если это нужно компании № 3.

ИСПОЛЬЗОВАНИЕ:

Учитывая, что у нас есть компания с именем MyCompany . У MyCompany есть продукт под названием «Автомобиль», и информация, которую необходимо добавить в автомобиль, - «Марка и цвет». Мы создаем два новых поля с именами Make и Color, затем в таблицу ProductField добавляем две новые записи: первая будет иметь: идентификатор поля «Make», значение «BMW» и ссылку на продукт с его идентификатор, который является автомобилем. Мы делаем то же самое для цвета, ссылаясь на поле «Цвет» и продукт «Автомобиль».

Запросы: Запросы теперь проще, чем иметь таблицу для каждой информации о продукте компании.

Пример:

var myProducts = _db.Products.Where(p=>p.CompanyID== "1").Include(p=>p.Fields).Tolist()

Опять же, это мое мнение. Надеюсь, это поможет.

5
задан Michael Pryor 19 March 2009 в 17:50
поделиться

7 ответов

Обычно Studio управления SQL является средством администрирования для Вашей базы данных и не предназначенный для ввода данных кроме быстрого редактирования здесь или там. Обычно Вы писали бы сценарий данных, или они будут вводиться приложением, которое использует базу данных для персистентности.

(Хотя я указал на Доступ к своему SQL Server DB для лучшего быстрого и грязного UI.)

5
ответ дан 14 December 2019 в 01:20
поделиться

Это может бороться с Вашим счетом - SQL Редактор LOB.

Другой опцией, на которую Вы могли бы хотеть посмотреть, является EMS Studio SQL для SQL Server.

Marc

2
ответ дан 14 December 2019 в 01:20
поделиться

Если Вы конкретно после хорошего большого многострочного редактирования диалоговые окна, то да определенно необходимо посмотреть за пределами строки Microsoft SSMS инструментов. Они не поддерживают его.

1
ответ дан 14 December 2019 в 01:20
поделиться

Я полностью рекомендую DBVisualizer. Хорошая вещь об этом, это поддерживает длинный список баз данных и универсальный все Драйверы JDBC (так как это записано в Java). Можно просмотреть различные базы данных, данные изменения и исследовать схему в хороших графиках. Это стало свободным и персональным выпуском за 149$ и полностью стоит того! Посмотрите на эту матрицу для сравнения.

Вы сможете отредактировать текст и ntext в SQL Server 2000, 2005 и неприветливый для следующих версий также.

0
ответ дан 14 December 2019 в 01:20
поделиться

Разве в Консоли управления не возможно делать действие контекстного меню "Open Table" и затем редактировать данные оттуда?

0
ответ дан 14 December 2019 в 01:20
поделиться

Если бы я должен был делать редактирования только иногда, то я, вероятно, использовал бы SQL Query Analyzer и просто написал бы сценарий команды UPDATE.

Если бы это было слишком неудобно, то я затем посмотрел бы на соединение с базой данных в Доступе, и к действительно быстрой и грязной простоте использования я буду просто использовать AutoForm для генерации UI для таблицы. Если у Вас нет Доступа, я полагаю, что Основа OpenOffice может соединиться через ODBC и имеет подобную функциональность создания формы.

0
ответ дан 14 December 2019 в 01:20
поделиться

Это просто глупо. Предприятие Manager для SQL Server 2000 обрабатывается многослойным текстом просто отлично. Просто глупо идти назад и свободная функциональность, которая была ранее существована. Не нравится ракетная наука для воспроизведения отформатированного текста. Кто-то действительно бросил мяч на этом.

1
ответ дан 14 December 2019 в 01:20
поделиться
Другие вопросы по тегам:

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