sql

MSSQL сервер и collation

in

 

Ошибка

Msg 468, Level 16, State 9, Line 7
Cannot resolve the collation conflict between "SQL_Latin1_General_CP1251_CI_AS" and "Cyrillic_General_CI_AS" in the equal to operation.

 

Полное решение переустановить сервер с правильными языковыми настройками как описано здесь

Массовая вставка в таблицу с Identity полем в MSSQL

in

 

SET IDENTITY_INSERT TargetTable ON

insert into TargetTable (Id, Name)
select src.[Id], src.SourceName
from SourceTable src
where src.GroupId not in (select Id from TargetTable ) 
SET IDENTITY_INSERT TargetTable OFF

Если выдается ошибка:

An explicit value for the identity column in table can only be specified when a column list is used and IDENTITY_INSERT is ON.

SELECT с группировкой

in

Задача:

Есть таблица datatable с колонками id, name, path. Поле path у некоторых записей совпадает

Требуется выбрать только по одной записи для значения поля path,при этом брать запись у которой поле id минимальное.

Решние:

Создание дампа в Microsoft SQL Server

in

Создание дампа в Microsoft SQL Server 2000, 2005

Microsoft SQL Server Management Studio 2005 было невозможно сформировать полноценный дамп базы данных.

Зато MS сделали бесплатную утилиту Microsoft Database Publishing Wizard, которая только этим и занимается.

Microsoft SQL Restore Привязка пользователей базы к логинам

in

После восстановления из Backup отваливаются связи между пользователями базы и логинами sql сервера.

При этом можно восстановить связь несколькими способами:

1. Руками в SQL Managment Studio

1.1. удалить пользователя базы

1.2. Перейти к соответствующему логину сервера

1.3. Поставить Mapping на базу

Аутентификация MS SQL (Изменение режима LoginMode)

Для перехода в смешанный (mixed) режим есть несколько способов:

I Если у вас установлена SQL Managment studio, то выбираем свойста сервера и переключаем режим.

 

II Если для управления сервером нет средств, необходимо поправить

firebird LIMIT

in

В SQL firebird не поддерживается синтаксис LIMIT

В место этого надо использовать SELECT FIRST N SKIP offset

offset - количество пропущеных записей

N - количество записей для обработки

 

SQL работа с датами (datetime)

in

1. Добавить к 8 лет к дате
SELECT DATEADD(year, 8, '1.1.2000')

2. Добавить 8 лет ко всем датам в поле datefield, выбранным по условию

UPDATE SET datefield=DATEADD(year, 8, datefield)
WHERE dt>'1999-1-1' AND dt <'2000-12-31'

Interbase/Firebird удаление из базы мусора (сжатие)

in

После удаления записей, отмены транзакций и прочих опрераций с данными файл базы разростается. Это обусловлено необходимостью повышением скорости работы сервера. Для того чтобы придать базе надлежащие размеры можно использовать в локальном режиме утилиту GBAK или API сервера.
Необходимо сделать резервную копию базы, а затем восстановить ее. При этом происходит естественный отсев всей бесполезной информации.
Для разработчиков отлаживающих приложения более всего подойдет сервисные функции IBExpert backup/restore

ADO чтение Excel (тонкости)

Введение

Здесь должен быть пример соединения с xls фалом и чтением через ADO, но видимо появиться он позже(возможно по требованиям читателей).

 

1. Русские имена и спец. символы в названиях Закладок (Sheet-ов) Чтобы правильно читались имена закладок следует использовать Microsoft.Jet версии 4.0 и выше, а также в Extended Properties прописать Excel 8.0.

 

RSS-материал