sql

Пользователи MSSQL задание прав

Возможны различные варианты создания пользователей базы. 

Предложу наиболее простой и безпроблемный.

В примере мы создаем пользователя testowner с полными правами на базу Addresses. 

1. Добавить логин в MS SQL server management studio

Зависание скрипта создания базы Microsoft MQL

В скрипте создания базы есть строка отключающая сервис Service Broker

ALTER DATABASE [ERP] SET DISABLE_BROKER GO

Если база занята (есть открытые соединения), то выполнение команды приведет к зависанию.

Решение:

1. Стереть команду, если вы не используете Service Broker

2. Запустить/перезапустить windows service SQL Agent

 

 

 

SQL Managment studio 2008 проблемы с Full-text index

При переносе базы в MS SQL 2008 с полнотекстовым индексом может возникнуть ситуация, когда для базы индексы созданы, но в контекстном меню пункт серый (выключен):

Это происходит, поскольку не проставился флажок базы включенного текстового индекса.

Проверяем - смотрим свойство IsFulltextEnabled для всех баз кроме системных (dbid 1..4)

select name, DATABASEPROPERTY(name,'IsFulltextEnabled')
from master..sysdatabases where dbid > 4
GO

MS SQL 2008 CTE и CONTAINSTABLE

В MS SQL для постраничкого вывода можно использовать CTE (Common table expressions):

WITH cte AS
(
SELECT ROW_NUMBER() OVER (ORDER BY FullName ASC) as RowNum,
* FROM Users
) SELECT * FROM cte
WHERE RowNum BETWEEN 0 AND 50

В MS SQL 2008 до SP3 включительно CTE не работает с полнотекстовым поиском

(CONTAINSTABLE)

При запросе

MS SQL Server 2005/2008 и база на сетевом диске

1.Необходимо настроить сервис SQL Server для старта после включения сети

HKEY_LOCAL_MACHINE\ System\ CurrentControlSet\ Services\ MSSQLServer.

DependOnService =  NetLogon

2. Путь к устройствам следует задавать как UNC ( \\server\share).

Чтобы была возможность использовать UNC путь при создании/открытии базы, необходимо установить флаг (trace flag) 1807.

Включить флаг можно, например в SQL Managment studio

DBCC TRACEON (1807)

Проблемы в SQL Server Managment Studio 2005 с job SQL Agent

При попытке создать или редактировать job в SQL Managment Studio2005

Выдается сообщение:

ms sql 2005 error message

MSSQL сервер и collation

 

Ошибка

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

 

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 с группировкой

Задача:

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

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

Решние:

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

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

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

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

RSS-материал