Quantcast
Channel: SQL.ru: Microsoft SQL Server
Viewing all 7251 articles
Browse latest View live

Некорректное удаление "плана обслуживания" в SQL 2016

$
0
0
Доброго дня коллеги !
Сразу скажу , что в чайник в SQL, заранее прошу прощения поэтому.

В общем дело такое..
Я удалил каким то образом некорректно задание или план обсуживания , что он остался висеть и теперь я удалить не могу , пишет ошибк.

Я командой SELECT NAME, ID FROM MSDB..SYSMAINTPLAN_PLANS узнал какой ИД у этого задания ...

А дальше не знаю точно, что делать , можете подсказать ?

Хотя я так в целом понимаю , что проблема не критична , но все же хотелось бы удалить ..

Лог при удалении Задания:

ЗАГОЛОВОК: Microsoft SQL Server Management Studio
------------------------------

Не удалось выполнить действие "Удалить" для следующего объекта: "Задание", "очистка лога.ВложенныйПлан_1". (Microsoft.SqlServer.Smo)



------------------------------
ДОПОЛНИТЕЛЬНЫЕ СВЕДЕНИЯ:

При выполнении инструкции или пакета Transact-SQL возникло исключение. (Microsoft.SqlServer.ConnectionInfo)

------------------------------

Конфликт инструкции DELETE с ограничением REFERENCE "FK_subplan_job_id". Конфликт произошел в базе данных "msdb", таблица "dbo.sysmaintplan_subplans", column 'job_id'.
Выполнение данной инструкции было прервано. (Microsoft SQL Server, ошибка: 547)

Лог удаления плана обслуживания :

ЗАГОЛОВОК: Microsoft SQL Server Management Studio
------------------------------

Адресат вызова создал исключение. (mscorlib)

------------------------------
ДОПОЛНИТЕЛЬНЫЕ СВЕДЕНИЯ:

Индекс за пределами диапазона. Индекс должен быть положительным числом, а его размер не должен превышать размер коллекции.
Имя параметра: index (mscorlib)


Очень рассчитываю на вас!

Динамический запрос "обрезался"?!

$
0
0
Всем привет.

У меня произшел следующий случай.
В процедуре присутствует динамический запрос, который создает таблицу.
Типа такого.
<...>

declare @qqq varchar(max)
       ,@tblName varchar(200);

set @tblName = 'qwaqwa' + convert(varchar(10), current_timestamp, 120);

set @qqq = 
'create table [' + @tblName + ']
   (keyID int not null identity(0,1) primary key
   ,col01 int
   ,col02 int
   ,col03 int
   ,col04 int
   ,col05 int
   ,col06 int
   ,col07 int
)';

exec (@qqq);

<...>


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

Кто-нибудь сталкивался с подобным?
Расскажите!

Пробовал гуглить, но скорее всего нормально сформулировать вопрос не получается у меня, поэтому ничего похожего не нашел.

Как выбрать все процедуры, функции по критерию?

$
0
0
Все процедуры, функции, у которых не такие установки

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

Свободное место

$
0
0
Добрый день
На сервере microsoft Sql 2005 , при запросах результат где то сохраняется и места забивается на диске , не могу найти путь где именно
Подскажите плиз если кто то знает

Группировка даты в excel

$
0
0
Доброго времени суток. Проконсультируйте пожалуйста. Подключаюсь через excel к sql server к определенному представлению, при

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

по году/месяцу/дню/часам через "+". Какое можно найти решение, для того чтобы была группировка для "Время разрешения" и

"Фактическое разрешение", если я использую ISNULL при выводе для пустых ячеек? CONVERT и СAST внутри ISNULL работают не

корректно, появляется дата "1900-01-01 00:00:00" вместо пустых значений. CONVERT и CAST писал без FORMAT. Код прилагаю.

SELECT
[Case].Number "Номер",
CaseStatus.Name "Состояние",
Symptoms "Описание",
ISNULL(FORMAT(SolutionDate, 'dd/MM/yyyy hh:mm'), '') "Время разрешения",
ISNULL(FORMAT(SolutionProvidedOn, 'dd/MM/yyyy hh:mm'), '') "Фактическое разрешение",
FROM
[Case] LEFT JOIN
CaseStatus ON CaseStatus.Id = [Case].StatusId LEFT JOIN

My Sql 2005 server

$
0
0
Добрый день
На сервере M Sql 2005 , при запросах результат где то сохраняется и места забивается на диске , не могу найти путь где именно
Подскажите плиз если кто то знает

Распараллеливание процедур. Совет

$
0
0
Добрый день, товарищи!

Есть некая процедура, которая состоит из подпроцедур, например:
CREATE Procedure as 
begin
   exec procedure_1;  
   exec procedure_2;   
end;

CREATE Procedure_2 as 
begin
   exec procedure_2_1;  /*5 min*/
   exec procedure_2_2;  /*8 min*/
   exec procedure_2_3;  /*15 min*/
   exec procedure_2_4;  /*4 min*/
end;


имеется процедура, которая это всё запускает, типа:
exec Procedure_1


Общее время выполнения процедуры Procedure занимает <t(procedure_1)>+5+8+15+4=32+ минуты, что является критически.

Предлагалось создание job для распараллеливания выполнения под-процедур в Procedure_2, для сокращения времени до максимального из 4-х, тоесть до /*15 min*/.

Есть ли какие решения по данной задаче?

ПыСы. В инете честно искал, но дельного не нашел. Возможно и плохо искал(

OBJECT_DEFINITION возвращает только часть кода

$
0
0
Хочу запросить текст вью:

SELECT OBJECT_DEFINITION (OBJECT_ID(N'dbo.v_ps_value')) AS [Definition]; 


Возвращает только часть текста, т.е.

create  VIEW [dbo].[v_ps_value]
AS
SELECT	property.id,
		property.descriptor_id,
		property.owner_id,
		property_value.value as value
FROM	dbo.property INNER JOIN	 dbo.property_value 


там еще есть on ...=.. и т.д.

Что не так?

В каких случаях блокируется системная таблица sys.sysschobjs ?

$
0
0
Приветствую.

Подскажите пожалуйста, в каких случаях может блокироваться эта таблица?

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

Выбрать запись или все записи

$
0
0
Задача: выбрать все записи для всех счетов клиента или для конкретного счета, смотря что пользователь выбрал.
В подобных случаях я давно уже пишу так:
SELECT   M.*          
FROM 
  V_AccountTrans as M	
WHERE M.ClientCode = @ClientCode 
         and (M.AccountNumber = @AccountNumber or @AccountNumber = -1)
         and M.TransType IN (0, 1, 2)		
order by M.AccountNumber, M.TransTime DESC

Параметр -1 передается, если нужно выбрать все счета.
В общем-то на тех объемах данных, которые есть и еще долго будут, это все работает вполне себе отлично и жить не мешает.
Не вдаваясь в подробности именно этого запроса, а в общей теории - есть ли какие подводные камни в такой записи условия - or @AccountNumber = -1?
а то дьявол в нюансах таится, и как обычно бывает, даже если что-то где-то написано, то либо мимо глаз проскальзывает либо в конце мелким шрифтом :)

Решение задачи минимума (максимума)

$
0
0
Добрый день!

Есть переменная
declare @Sum int = 20;


Есть таблица
declare @Table table(id int, value int);
insert into @Table values (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7);


Есть задача: выбрать из таблицы только те записи, сумма значений которых будет наиболее близка к значению @Sum, при этом число записей будет минимально.

Ожидаемый результат:
id
3
4
6
7

Вопрос: как должен выглядеть запрос, абстрагируясь от значения
@Sum
и значений поля
value
?

Спасибо!

Почему SQLXMLBULKLOAD не дружит с типом date?

$
0
0
Никак не могу разобраться, почему SQLXMLBULKLOAD не импортирует элементы типа date.
Дошел до того, что пытаюсь создать набор таблиц с помощью SQLXMLBulkLoad (что б посмотреть, чего там создается.)
Создаю так:
Dim objBL = CreateObject("SQLXMLBulkLoad.SQLXMLBulkLoad")
        objBL.ConnectionString = "Provider=sqloledb;server=" + _Server + ";database=" + _Database + ";integrated security=SSPI"
        objBL.ErrorLogFile = "c:\error.log"

        objBL.SchemaGen = True
        objBL.SGDropTables = True
        objBL.Bulkload = False


        'objBL.KeepIdentity = False
        objBL.Execute(xsdFilePath, xmlFilePath)
        objBL = Nothing

Так вот, когда элемент описан как:
<xsd:element name="DATA" type="sqltypes:datetime" />
он создается.
А когда описан как:
<xsd:element name="DATA" type="sqltypes:date" />
То вылазит ошибка: The definition for column 'DATA' must include a data type.

Намспейсы импортирую так:
<xsd:schema xmlns:schema="urn:schemas-microsoft-com:sql:SqlRowSet" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:sqltypes="http://schemas.microsoft.com/sqlserver/2004/sqltypes" xmlns:sql="urn:schemas-microsoft-com:mapping-schema" elementFormDefault="qualified">
  <xsd:import namespace="http://schemas.microsoft.com/sqlserver/2004/sqltypes" schemaLocation="http://schemas.microsoft.com/sqlserver/2004/sqltypes/sqltypes.xsd" />

Причем в "http://schemas.microsoft.com/sqlserver/2004/sqltypes" этот тип есть, и описан:
  <xsd:simpleType name="date">
    <xsd:restriction base="xsd:date">
      <xsd:pattern value="((000[1-9])|(00[1-9][0-9])|(0[1-9][0-9]{2})|([1-9][0-9]{3}))-((0[1-9])|(1[012]))-((0[1-9])|([12][0-9])|(3[01]))"/>
      <xsd:maxInclusive value="9999-12-31"/>
      <xsd:minInclusive value="0001-01-01"/>
    </xsd:restriction>
  </xsd:simpleType>

И ровно в таком виде представлен в хмл.

Помогите разобраться, я только пытаюсь начать это осваивать.

Триггер на Insert MS SQL Старое и новое значение

$
0
0
Есть три таблицы:
1. Car
Car_id
Car_Model
Car_number

2. Group_machine
Group_machine_id
Group_machine_name

3. car_and_groupe
id
Group_machine_id
Car_id
groupe_date_start
groupe_date_finish

Смысл в чём есть машины, и есть группы. Машины необходимо группировать. При этом каждая машина в определённый момент времени может находится только в одной группе. Надо как то через триггер сделать так что бы когда добавлялась новая запись в таблицу car_and_groupe оно проверяло дату начала новую(groupe_date_start) со старой датой конца (groupe_date_finish) ну и пропускало это действие. При этом ( groupe_date_finish) может быть NULL это означает что машина находится в группе.

ПС. Таблица 3 (car_and_groupe) собственно связывает машины и группы.
Help пожалуйста я чот вообще не догоняю как это сделать.)

Тип данных 23 (ошибка при импорт DBF в MSSQL)

$
0
0
Добрый вечер!

Такая незадача - при попытке закачать DBF в MSSQL16 через DTS (он же SSIS) некоторые поля в исходной таблице показывают в Column Mappings, что они имеют некий якобы тип 23, и при попытке идти дальше импорт падает. На самом деле это даты, и если вручную выставить им тип date или datetime, то всё импортируется на ура. Но файлов DBF несколько сотен, вручную возиться неохота, и хотелось бы найти способ сделать так, чтобы проблем с автоматической закачкой таких полей не было.

Смена провайдеров и манипуляции с Connection String ничего не дают.

Можно ли как-нибудь достичь желаемого?

Ошибка при обработку базы данных SSAS

$
0
0
Приветствую всех.

Возникла ошибка при обработке базы данных SSAS.

автор
Configuration system failed to initialize;Unrecognized configuration section startup. (C:\Program Files\Microsoft SQL Server\MSAS14.MSSQLSERVER\OLAP\bin\msmdsrv.exe.Config line 2).


Start uр конфигурация выглядит следующим образом:
автор
<startup useLegacyV2RuntimeActivationPolicy="false">
<requiredRuntime version="v4.0.30319" safemode="true" />
</startup>


В чем может быть ошибка?

СУ,
Ерхан

Форматирование sp_send_dbmail при отправке сообщения в HTML: выделение строки цветом

$
0
0
Доброго дня.

Возможно кто-то сталкивался. Отправляю выборку из БД через sp_send_dbmail. Формат сообщения HTML. Возможно ли некоторые строки, в зависимости от параметров, либо выделять цветом полностью (заливка ячейки) либо изменить цвет самого текста строки? Нужна такая настройка, в HTML не силен, а в SSRS переделывать отчет не хочется.

SQL CAL

$
0
0
Суть вопроса такова, имеется SQL сервер, и программа бухгалтерского учета. Фирма хочет обновить программу бухгалтерского учета, но нужно узнать количество лицензий на SQL cal. Как можно узнать сколько лицензий имеется SQL cal, и что это вообще такое. Буду рад за любую информацию

Ошибка раписания

$
0
0
Добрый день.
Был сбой: системное время сдвинулось на 10 лет вперед.
Сейчас выяснилось что задания не отрабатывают, т.к. "следующий запуск" 2028год. Как исправить?

Не верно увеличиваются ID

$
0
0
Здравствуйте, уважаемые знатоки.
Позвольте задать вопрос: MS SQL Managment studio 2012. Создаю таблицу, в таблице есть инкрементное поле ID.
Начинаю работу с таблицей, тестирую: добавляю, удаляю данные. И вот, что обнаружил, ID сначала идут 1,2,3,4,5...50,51,1052,1053,1054...
Откуда берется такой шаг? Я работаю на локальной машине, больше никто, кроме меня не имеет доступа к этой базе, и добавлял в таблицу не более сотни записей.
Если кто сталкивался с этим, подскажите пожалуйста.

Производительность серверов

$
0
0
Поручено написать запрос, динамическим SQL. Имеется 10 серверов, (их альясы хранятся в некой таблице), чтобы запуская запрос, админ БД видел проблемы. А не заходил на каждый сервер и смотрел где есть проблемы с производительностью, загрузкой Сервера.
Есть ли некий запрос по производительности?

Microsoft SQL Server 2016 (SP1-CU7-GDR) (KB4057119) - 13.0.4466.4 (X64) Dec 22 2017 11:25:00 Copyright (c) Microsoft Corporation Enterprise Edition: Core-based Licensing (64-bit) on Windows Server 2016 Standard 10.0 <X64> (Build 14393: )
Viewing all 7251 articles
Browse latest View live