ПредишенСледващото

Никога не съм имал желание да кажа MS SQL

и той просто щеше да го копирате? Не че сте изброили всички колони в листовката на и изберете блокове. Напротив, ти написа: Моля, копирайте. Би било хубаво? И ако изведнъж се промени схемата на маса, не е нужно да се изброят още една колона.

Копиране на редове на всяка маса

Съжаляваме, каза той, което не позволява уникален индекс. Добре. По това време, ние молим учтиво:

Копиране на редове на всяка маса

Това е всичко. MSSQL просто копират реда на маса, и ние не трябва да посочите колоните в поставите или изберете. Понякога тя може да бъде много полезен.

Ако не мога да чакам да се повтаря, потърсете инструкции в долната част на страницата.

Съхраняваме схемата маса в специална таблица в нашата база данни "система". Кога е най-подходящото време, можем да научим набор от колони в текстово трансфер, т.е. col1, col2, col3 и създаване на динамични заявка низове-сляпо, като поставите в и NASHA_TABLITSA и (col1, col2, col3) и изберете и col1, col2, col3 и от и NASHA_TABLITSA и къде $ ИДЕНТИЧНОСТ = и OUR_PRODUCT_ID_VALUE. Освен това, ако искате да промените някои от данните за ново строителство, ние просто сменете имената на някои колони colN конкретни стойности, като например SELECT col1, "нова стойност", col3 ОТ NASHA_TABLITSA.

След като получим Вашето запитване, ние осъществяваме и се случва магията.

Ако се интересувате от това как е подредена - заповядайте.

изисквания

Сценарият включва работа с регулярни изрази, агрегация и наниз функционални масиви. Необходимост от това CLR DLL може да намерите тук.

Съхранявайте схемата на маса на едно място

Ако сте запознати с предишния рекорд. ще забележите, че вместо колоните на една таблица, ние си запазваме схема на всички маси за всички бази данни, без изключение.

Така че ние ще запази схемата на маса.

Ние се създаде временна таблица и я държи за нашия работен лист (този, при който копието). Ние също така да определи идентичността на колона. Тогава ние се подготви наставка и представка (LITERAL_PREFIX и LITERAL_SUFFIX) в случай на нови конкретни стойности. Например, вмъкнете в таблица (int_col, varchar_col, varbinary_col) SELECT 1, "текст", 0xCA010. Символи '' и 0x е само са те. Споделяме масив @todo (например, = 10; б = нов текст; с = стойност) таблица, за да се създаде един чифт ключ => стойност. Финалната маса, заместваме имената на лекторите по новите стойности. Останалите колоните са perechisileny непроменени.

Последната стъпка - да се съберат на искане, като се използва функцията агрегация SYSDB.dbo.list на.

Ако искате да повторите описаната функция, трябва да се извършват четири стъпки:

  1. Създаване на база данни "система". Обадих й SYSDB;
  2. Свържете функцията CLR тук;
  3. Изпълнете скрипта:
    • Запазване на информация за типове данни;
    • Създаване и изпълнение на схемата за актуализация на процедура на маса.
    • Създаване на процедура да се подредят.
  4. Използвайте.

Свързани статии

Подкрепете проекта - споделете линка, благодаря!