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

Запрос с неверным результатом или моей логикой

$
0
0
Доброго дня.
Никак не могу решить задачку по SQL.
Люди Добрые, пните в какую сторону смотреть. Где я неправ?
Скоро уже умом тронусь :(
Задача
Для каждого производителя подсчитать:
сколько имеется в наличии его продуктов (любого типа) с неуникальной для этого производителя ценой
и количество таких неуникальных цен.
Вывод: производитель, количество продуктов, количество цен.

Первый вариант.
with AllProducts as --Все продукты с ценами---------------------------------------------------
	(
	select p.*, t.code, t.price from dbo.Product p inner join dbo.PC t on p.model = t.model
	union all
	select p.*, t.code, t.price from dbo.Product p inner join dbo.Printer t on p.model = t.model
	union all
	select p.*, t.code, t.price from dbo.Product p inner join dbo.Laptop t on p.model = t.model
	)
	, CountNonUniqProducts as --Количество продуктов с не уникальной ценой-------------------------
	(
	select 
		case -- Когда присутствует вторая цена => Продукт с такой ценой не уникальный - считаем все что есть
			when row_number()over(partition by al_out.maker, al_out.price order by al_out.maker, al_out.price) = 2 
			then (select count(al_in.price) from AllProducts al_in where al_in.maker=al_out.maker and al_in.price=al_out.price)
		end 'CountNonUniq'
		, al_out.* 
	from AllProducts al_out
	)
select 
	cnt.maker
	,isnull(sum(cnt.CountNonUniq),0) 'CountModels'
	,count(cnt.CountNonUniq)'CountPrice'
from 
	CountNonUniqProducts cnt
group by
	cnt.maker	
;
--Ваш запрос вернул правильные данные на основной базе, но не прошел тест на проверочной базе.
--* Неверное число записей (меньше на 6)

Второй вариант
With CountNonUniqProducts as --Количество продуктов с не уникальной ценой
	(
	select		
		al.maker, al.price, count(*) 'NonUniq'
	from		
		(
		select p.*, t.code, t.price from dbo.Product p inner join dbo.PC t on p.model = t.model
		union all
		select p.*, t.code, t.price from dbo.Product p inner join dbo.Printer t on p.model = t.model
		union all
		select p.*, t.code, t.price from dbo.Product p inner join dbo.Laptop t on p.model = t.model
		) al
	group by
		al.maker, al.price
	having	
		count(*)>1
	)
select distinct 
	p.maker
	,( 
	select isnull(sum(cnt.NonUniq),0) from CountNonUniqProducts cnt where cnt.maker=p.maker
	) 'CountModels'
	,(
	select count(cnt.NonUniq) from CountNonUniqProducts cnt where cnt.maker=p.maker
	) 'CountPrice'
from dbo.Product p

--Ваш запрос вернул правильные данные на основной базе, но не прошел тест на проверочной базе.
--* Несовпадение данных (4)


Структура БД
Картинка с другого сайта.
Схема БД состоит из четырех таблиц:
Product(maker, model, type)
PC(code, model, speed, ram, hd, cd, price)
Laptop(code, model, speed, ram, hd, price, screen)
Printer(code, model, color, type, price)
Таблица Product представляет производителя (maker), номер модели (model) и тип ('PC' - ПК, 'Laptop' - ПК-блокнот или 'Printer' - принтер). Предполагается, что номера моделей в таблице Product уникальны для всех производителей и типов продуктов. В таблице PC для каждого ПК, однозначно определяемого уникальным кодом – code, указаны модель – model (внешний ключ к таблице Product), скорость - speed (процессора в мегагерцах), объем памяти - ram (в мегабайтах), размер диска - hd (в гигабайтах), скорость считывающего устройства - cd (например, '4x') и цена - price. Таблица Laptop аналогична таблице РС за исключением того, что вместо скорости CD содержит размер экрана -screen (в дюймах). В таблице Printer для каждой модели принтера указывается, является ли он цветным - color ('y', если цветной), тип принтера - type (лазерный – 'Laser', струйный – 'Jet' или матричный – 'Matrix') и цена - price.


групировка, сортировка и фильтрация

$
0
0
Добрый день, подскажите, помогите!

Имеются две таблицы: 1. Items со столбцами (ID, Name), 2. Data со столбцами (ItemID,Time,Value)
Нужно получить: таблицу из столбцов: Name (без повторов), Time (последнее по времени в БД) и соответствующее Value
Выполняю запрос:
SELECT DISTINCT Items.Name, MAX(Data.Time) as Time
FROM vtec.dbo.Data INNER JOIN vtec.dbo.Items ON Data.ItemID=Items.ID and
Items.Name like '%DA%' and 
Items.Name not like '%HDA%'
GROUP BY Items.Name
order by Time DESC

Внимание вопрос: как добавить столбец Value?

Ошибка при подключении к linked server-у "Время ожидания входа в систему истекло"

$
0
0
Дано: пытаюсь подключиться к linked server-у. Получаю ошибку:

Поставщик OLE DB "SQLNCLI11" для связанного сервера "192.168.17.210" вернул сообщение "Время ожидания входа в систему истекло".
Поставщик OLE DB "SQLNCLI11" для связанного сервера "192.168.17.210" вернул сообщение "Не удается завершить вход в систему из-за задержки ответа на этапе предварительного согласования параметров".
Сообщение 258, уровень 16, состояние 1, строка 7
Поставщик TCP: Ошибка времени ожидания [258].

Мне прислали настройки удалённого сервера. Те, что со словом remote, следующие:
name minimum maximum config_value run_value
remote access 0 1 1 1
remote admin connections 0 1 0 0
remote login timeout (s) 0 2147483647 10 10
remote proc trans 0 1 0 0
remote query timeout (s) 0 2147483647 600 600


Куда копать и что менять в настройках серверов, чтобы решить проблему?

IF vs WHERE

$
0
0
IF (@recovered = 1)
BEGIN
UPDATE Table SET recovered = @recovered WHERE id = @id 
END


vs

UPDATE Table SET recovered = @recovered WHERE id = @id AND @recovered = 1


какой лучше?

SSIS ошибка при запуске файла *.cmd

$
0
0
первый раз использую SSIS.
создал задачу "Выполнение процесса", которая вызывает файл Letter.cmd, который в свою очередь
запускает vbs-файл. Если руками запускаю Letter.cmd, то всё OK.
Но если это делаю через SSIS, то ошибка:
текст ошибки:
Version 10.50.6000.34 for 64-bit
(C) Корпорация Майкрософт (Microsoft Corporation), 2010. Все права защищены.

Начало: 18:58:23
Выполнение: 2016-12-08 18:58:23.32
  Источник: Задача "Выполнение процесса" Задача "Выполнение процесса"
  Операция завершена: 0% завершено
Конец выполнения
Ошибка: 2016-12-08 18:58:23.45
  Код: 0xC0029151
  Источник: Задача "Выполнение процесса" Задача "Выполнение процесса"
  Описание: При выполнении "C:\Letter\LETTER.cmd" "" на "" код завершения процес
са был "1", а ожидался "0".
Конец ошибки
Выполнение: 2016-12-08 18:58:23.45
  Источник: Задача "Выполнение процесса" Задача "Выполнение процесса"
  Операция завершена: 100% завершено
Конец выполнения
Предупреждение: 2016-12-08 18:58:23.45
  Код: 0x80019002
  Источник: Package
  Описание: Код предупреждения служб SSIS: DTS_W_MAXIMUMERRORCOUNTREACHED. Метод
 Execution завершен успешно, но число возникших ошибок (1) достигло максимально
допустимого (1), что привело к сбою. Это происходит, когда количество ошибок дос
тигает значения, определенного в свойстве MaximumErrorCount. Измените свойство M
aximumErrorCount или устраните ошибки.
Конец предупреждения


Где и как найти суть ошибки?

Странное поведение при восстановлении

$
0
0
Здравствуйте.
Заранее прошу прощения, если вопрос глупый. Но тем не менее, помогите, пожалуйста, разобраться.
MS SQL server 2014.
Создаю копию базы путем восстановления из бэкапа.
Выбрал source из файла бэкапа. Выбрал destination - другую базу. Ввел новые имена файлов для mdf и ldf. Логические имена остались старые, как в исходной базе.
Восстановил destination-базу, все нормально. И случайно заметил, что в списке баз возле имени ИСХОДНОЙ БАЗЫ появилось слово (restoring...). Попробовал посмотреть свойства исходной, не дает, говорит, мол, база занята.
Я не особый знаток SQL, но создание копии базы путем восстановления в другую базу из бэкапа делал до этого.
Что я мог такого сделать в этот раз, из-за чего сервер так себя повел? Почему начала восстанавливаться ИСХОДНАЯ БАЗА.

Объединение таблиц по нескольким полям

$
0
0
Здравствуйте!
В базе данных есть таблица с адресом, состоящим из полей Улица, Дом, Литера, Подъезд, Номер_лифта и поле Регистрационный_номер. Поля Литера и Номер_лифта могут иметь значения NULL.
Пришли новые данные с обновлёнными рег номерами. Из этих данных я создал такую же таблицу.

Нужно объединить таблицы по полному адресу и вывести записи, где новый рег номер отличается от старого.
Следующий запрос не выдаёт ни одного результата. Судя по всему, значения NULL не считаются равными.
select t1.[id_address]
	,('ул. ' + t3.street + ', д.' + CAST(t2.home as nvarchar(10)) + (case when t2.litera is null then '' else t2.litera end) + ' - ' + CAST(t2.porch as nvarchar(10)) + (case when t2.num_lift is null then '' else ' №' + CAST(t2.num_lift as nvarchar(10)) end )) as 'Адрес old'
	,('ул. ' + t6.street + ', д.' + CAST(t5.home as nvarchar(10)) + (case when t5.litera is null then '' else t5.litera end) + ' - ' + CAST(t5.porch as nvarchar(10)) + (case when t5.num_lift is null then '' else ' №' + CAST(t5.num_lift as nvarchar(10)) end )) as 'Адрес new'
      ,t1.[reg_num] as 'reg_num_old'
,t5.[reg_num] as 'reg_num_new'
     
from lifts t1 
join address t2 on t1.id_address = t2.id_address
join streets t3 on t2.id_street = t3.id_street

join db2016 t5 on t3.street = t5.street and t2.home = t5.home and t2.litera = t5.litera and t2.porch = t5.porch and t2.num_lift = t5.num_lift
join streets t6 on t5.id_street = t6.id_street 

--where t1.reg_num != t5.reg_num


Заранее спасибо.

management studio не видит изменений

$
0
0
Доброе утро.
Подскажите, есть ли способ заставить среду management studio(2008R2) видеть производимые изменения
в плане проверки синтаксиса и автоподстановок?
При создании/изменении процедур, таблиц среда никак не хочет осознавать новые объекты,
как при первом подключении к серверу оно засосало структуру, так и до конца своей работы не видит
изменений, даже отключение и подключение к серверу не помогает.
Не критично, но некоторые неудобства доставляет при обновлении структуры.

не могу подключиться к MSSQL ошибка "error occurred during the pre-login handshake"

$
0
0
Не могу подключиться к MSSQL 7.0 серверу с помощью .Net приложения через .NET Framework Data Provider for SQL Server. Насколько я знаю версия 7.0 до сих пор поддерживается последними версиями .NET Framework Data Provider for SQL Server. Подключение через ODBC работает.

Пробовал следующие строки подключения как советуют:


Server=MICKEY;Database=master;Network Library=DBMSSOCN;User Id=sa;Password=saPassword;
Server=MICKEY;Database=master;User Id=sa;Password=saPassword;
Server=MICKEY;Database=master;Trusted_Connection=False;User Id=sa;Password=saPassword;
Server=MICKEY;Database=master;Trusted_Connection=True;
Server=tcp:MICKEY,1433;Database=master;Trusted_Connection=True;


Ошибка:


SqlErrorCode: -2146232060
SqlErrorNumber: 10054

A connection was successfully established with the server, but then an error occurred during the pre-login handshake. (provider: TCP Provider, error: 0 - An existing connection was forcibly closed by the remote host.

Версия MSSQL сервера:

select @@version

Microsoft SQL Server  7.00 - 7.00.1152 (Intel X86) 
	Apr 17 2008 13:33:28 
	Copyright (c) 1988-2002 Microsoft Corporation
	Standard Edition on Windows NT 5.0 (Build 2195: Service Pack 4)


Версия операционной системы на сервере: Windows 2000 32 бит. На клиентском компьютере Windows 8.1 64 bit .Net 4.6.2.

На MS SQL сервере включены протоколы TCP/IP (порт 1433), Named Pipes (\\.\pipe\sql\query). Подключение по протоколу Named Pipes также даёт ошибку.

Как быстрее приготовить временную таблицу?

$
0
0
Приветствую,
Стоит задача создать темповую таблицу с кластерным индексом и 10 млн. записей. Всегда думал что самый быстрый вариант такой:
CREATE TABLE #t(id INT NOT NULL PRIMARY KEY CLUSTERED, a INT, b VARCHAR(100), c DATE)
INSERT INTO #t(id, a, b, c)
SELECT id, a, b, c FROM ...


Но! Был сильно обламан и удивлен когда в 2014 версии быстрее оказался вариант с двойной перегрузкой данных:
INSERT INTO #t(id, a, b, c)
SELECT id, a, b, c INTO #t FROM ...
ALTER TABLE #t ADD PRIMARY KEY CLUSTERED (id);


Версия:
Microsoft SQL Server 2014 - 12.0.2480.0 (X64) 
	Jan 28 2015 18:53:20 
	Copyright (c) Microsoft Corporation
	Enterprise Edition: Core-based Licensing (64-bit) on Windows NT 6.3 <X64> (Build 9600: )


Вопрос. Почему сортировка и перегрузка данных с кучи (heap) в таблицу с кластерным индексом оказывается быстрей чем просто загрузка в таблицу с кластерным индексом?

Что сделать, что бы избежать deadlock?

$
0
0
Суть вкрадце:
1. Есть вьюха из нее регулярно все читают при read_uncommitted - по сути инфа клиенты на карте... пох - грязное чтение норм в этом случае. Сайтом пользуется много народу - чтения идут постоянно и интенсивно.
2. Накатываем 1-2 раза в неделю миграцию. В этой миграции апдейт этой вьюхи. Написано правда через делит креат, не через апдейт, но пох пока так.

Граф дидлока на картинке и во вложении ниже.
Как блеять избежать этого дидлока? Понятно что остановка сервисов и накатывание обновлений спасет отца русской демократии, но руковдство это не хочет - нужно решение что бы обновлять миграции без останова сервиса.

+ graph
<TextData>
  <deadlock-list>
 <deadlock victim="process36ccc7c108">
  <process-list>
   <process id="process36ccc7c108" taskpriority="0" logused="0" waitresource="OBJECT: 8:2135125563:3 " waittime="4292" ownerId="47999405989" transactionname="user_transaction" lasttranstarted="2016-12-08T18:50:39.743" XDES="0x716a28540" lockMode="Sch-S" schedulerid="4" kpid="150140" status="suspended" spid="348" sbid="0" ecid="0" priority="0" trancount="1" lastbatchstarted="2016-12-08T18:51:01.687" lastbatchcompleted="2016-12-08T18:51:01.683" lastattention="1900-01-01T00:00:00.683" clientapp=".Net SqlClient Data Provider" hostname="A11" hostpid="8148" loginname="YOUDO\daemon" isolationlevel="read uncommitted (1)" xactid="47999405989" currentdb="8" lockTimeout="4294967295" clientoption1="671088672" clientoption2="128056">
    <executionStack>
     <frame procname="adhoc" line="1" stmtstart="146" stmtend="3114" sqlhandle="0x02000000ae2c0107e596c1c0b98b06bee5c178884b10cf620000000000000000000000000000000000000000">
unknown     </frame>
     <frame procname="unknown" line="1" sqlhandle="0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000">
unknown     </frame>
    </executionStack>
    <inputbuf>
(@p1 int,@p2 int,@userId int,@polygon nvarchar(184),@userId1 int,@p3 int)SELECT
	[task1].[Id],
	[task1].[AvatarId],
	[task1].[CreatorId],
	[task1].[Amount],
	[task1].[PriceRangeId],
	[task1].[Category],
	[task1].[DateNeedBegin],
	[task1].[DateNeedEnd],
	[task1].[State] as [State1],
	[task1].[IsPrivate],
	[task1].[City],
	[task1].[Name],
	[address].[AddressString],
	[address].[Long] as [Long1],
	[address].[Lat],
	[creator].[Name] as [Name1],
	[creator].[Lastname],
	[creator].[AvatarId] as [AvatarId1],
	[stat].[PositiveReviewsNumber],
	[stat].[NegativeReviewsNumber],
	IIF([utv].[UserId] IS NULL AND [utv].[TaskId] IS NULL, NULL, [utv].[LastViewDate]) as [c1],
	[task1].[SubcategoryId],
	[task1].[RegularState],
	[task1].[FeeFree],
	[o].[ShowCreatorPhone]
FROM
	[dbo].[AllTasks] [task1]
		INNER JOIN [dbo].[TaskAddress] [address] ON [task1].[Id] = [address].[TaskId] AND 0 = [address].[Order]
		INNER JOIN [dbo].[Users] [creator] ON [task1].[CreatorId] = [creator].[Id]
		LEFT JOIN [dbo].[    </inputbuf>
   </process>
   <process id="processd4a0009088" taskpriority="0" logused="63168" waitresource="OBJECT: 8:1584171605:3 " waittime="4271" ownerId="47999543918" transactionname="user_transaction" lasttranstarted="2016-12-08T18:51:01.530" XDES="0x400c69f1c0" lockMode="Sch-M" schedulerid="20" kpid="121408" status="suspended" spid="121" sbid="0" ecid="0" priority="0" trancount="2" lastbatchstarted="2016-12-08T18:51:01.730" lastbatchcompleted="2016-12-08T18:51:01.723" lastattention="1900-01-01T00:00:00.723" clientapp=".Net SqlClient Data Provider" hostname="SQL01" hostpid="143492" loginname="YOUDO\akordubaylo" isolationlevel="read committed (2)" xactid="47999543918" currentdb="8" lockTimeout="4294967295" clientoption1="671088672" clientoption2="128056">
    <executionStack>
     <frame procname="adhoc" line="2" stmtstart="88" stmtend="140" sqlhandle="0x0200000020b72524fe1ed27e6c6845f12a39760b4c4bc87e0000000000000000000000000000000000000000">
unknown     </frame>
    </executionStack>
    <inputbuf>
IF OBJECT_ID ('AllTasks', 'V') IS NOT NULL
	DROP VIEW [dbo].[AllTasks]
    </inputbuf>
   </process>
  </process-list>
  <resource-list>
   <objectlock lockPartition="3" objid="2135125563" subresource="FULL" dbid="8" objectname="YouDo.dbo.VerifiedUsersData" id="lock359b012b00" mode="Sch-M" associatedObjectId="2135125563">
    <owner-list>
     <owner id="processd4a0009088" mode="Sch-M" />
    </owner-list>
    <waiter-list>
     <waiter id="process36ccc7c108" mode="Sch-S" requestType="wait" />
    </waiter-list>
   </objectlock>
   <objectlock lockPartition="3" objid="1584171605" subresource="FULL" dbid="8" objectname="YouDo.dbo.AllTasks" id="lock4e7b222880" mode="X" associatedObjectId="1584171605">
    <owner-list>
     <owner id="process36ccc7c108" mode="Sch-S" />
    </owner-list>
    <waiter-list>
     <waiter id="processd4a0009088" mode="Sch-M" requestType="convert" />
    </waiter-list>
   </objectlock>
  </resource-list>
 </deadlock>
</deadlock-list>
</TextData>

Как можно ускорить выполнение процедуры?

$
0
0
Здравствуйте.

Собственно, сабж. MSQL. Есть исходная таблица с полями hash, id, value, date. Хочу заполнить две другие таблицы -

1. counter, value, date (counter - ключ)
2. counter, id, hash, date.

Для заполнения использую следующую процедуру:
1. Беру из исходной таблицы каждую строчку.
2. Проверяю есть ли в 1 табл. такое значение, если да, то обновить значение date, если нет, то вставить в 1 табл. и выполнить вставку во вторую табл. counter, id, hash, date, если таких значений нет, если же есть, то обновить date.
3. Удаляю строчку.

Данная процедура работает со скоростью 40-50 строчек в секунду. В исходную таблицу попадает по 12-15 тыс. строк. Примерное время работы 5-7 минут.

Есть индекса для всех таблиц. Как можно ускорить выполнение?

Шифрование на SQL 2016

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

Делаю так:

Microsoft SQL Server 2016 (RTM) - 13.0.1601.5 (X64) Apr 29 2016 23:23:58 Copyright (c) Microsoft Corporation Express Edition (64-bit) on Windows Server 2012 R2 Datacenter 6.3 <X64> (Build 9600: ) (Hypervisor)

CREATE CERTIFICATE TEST
   WITH SUBJECT = 'TEST',
   START_DATE = '20010101',
   EXPIRY_DATE = '20501231'

DECLARE @rp VARCHAR(255)
SELECT @rp = CONVERT(VARCHAR(255), ENCRYPTBYCERT(CERT_ID('TEST'), 'пороль'))
SELECT CONVERT(VARCHAR(255), DecryptByCert(Cert_Id('TEST'), CONVERT(VARBINARY(255), @rp)))


на SQL 2008 R2, 2012 все работает, на 2016 выдает NULL

В чем проблема ?

Помогите создать простои запрос UPDATE

$
0
0
Суть в чем есть таблица с аккаунтами в ней есть очки пользователя.
Нужен такои запрос Например. Пользователь Ваня тратит очки в размере 20. У него всего 19.
Как за один запрос вернуть сколько очков списано с Update вместе. т.е. еслиб у него было 50 очков. результат бы вернул 0 и обновилась бы запись на 30. А так он списывает больше чем у него есть обновление не происходит и возвращает ему 20 назад т.е. нечего не списано. и не обновлено. можно это как то за один запрос сделать в таблице 80к записеи

Процедура поиска из текстового поля

$
0
0
Здравствуйте, как реализовать

command->CommandText = "SELECT * FROM contacts WHERE (name LIKE ?)";
command->Parameters->Add("name", "%" + textBox1->Text + "%");


с помощью хранимых процедур?

Важно: Не могу понять ошибку в триггерах

$
0
0
Здравствуйте, не понимаю ошибку?
CREATE TRIGGER kolvo_d
ON k_dept FOR INSERT
AS
declare @firm_num NUMERIC(3)
select @firm_num=firm_num from inserted
begin
select firm_num from Kol_dept
if Kol_dept.firm_num = @firm_num
begin
UPDATE Kol_dept
SET kolvo_dept = kolvo_dept+1
WHERE Kol_dept.firm_num = @firm_num
end
else
begin 
insert Kol_dept (firm_num, kolvo_dept)
Values (@firm_num,1)
end
end




ОШИБКА:(if Kol_dept.firm_num = @firm_num)Не удалось привязать составной идентификатор "Kol_dept.firm_num".

Ошибка на пустое значение

$
0
0
По идее ограничения быть не может,однако ошибку выбивает.


CREATE TABLE [dbo].[Билет] (
    [код_билета]        INT  IDENTITY (1, 1) NOT NULL,
    [серия]             INT  NOT NULL,
    [место]             INT  NOT NULL,
    [цена]              INT  NULL,
    [ряд]               INT  NOT NULL,
    [дата_продажи]      DATE NULL,
    [дата_возврата]     DATE NULL,
    [дата_бронирования] DATE NULL,
    [код_фильма]        INT  NOT NULL,
    [код_сеанса]        INT  NOT NULL,
    [дата_просмотра]    DATE NULL,
    [код_продавца]      INT  NOT NULL,

Соединение текстового поля и чифрового

$
0
0
inner join Points p on p.ID = c.Point
у меня поле c.Point варчар, а поле p.ID интежер, но мне нужно соединять из c.Point только с теми кто числовые

После сбоя ошибка при открытии Maintenance Plans

$
0
0
Microsoft SQL Server 2005 - 9.00.3042.00 (Intel X86) Feb 9 2007 22:47:07 Copyright (c) 1988-2005 Microsoft Corporation Standard Edition on Windows NT 5.2 (Build 3790: Service Pack 2)

1. После сбоя сервера при открытии Maintenance Plans выходит ошибка:
--- начало ---
TITLE: Microsoft SQL Server Management Studio
------------------------------
Failed to retrieve data for this request. (Microsoft.SqlServer.SmoEnum)
For help, click: http://go.microsoft.com/fwlink?ProdName=Microsoft SQL Server&LinkId=20476
------------------------------
ADDITIONAL INFORMATION:
An exception occurred while executing a Transact-SQL statement or batch. (Microsoft.SqlServer.ConnectionInfo)
------------------------------
Invalid column name 'from_msx'.
Invalid column name 'has_targets'. (Microsoft SQL Server, Error: 207)

For help, click: http://go.microsoft.com/fwlink?ProdName=Microsoft SQL Server&ProdVer=09.00.3042&EvtSrc=MSSQLServer&EvtID=207&LinkId=20476
------------------------------
BUTTONS:

OK
------------------------------
--- конец ошибки ---

Часть Jobs от этих планов выполняется, часть завершается с ошибкой.


2. При попытке создать новый план выходит ошибка:
--- начало ---
TITLE: Microsoft SQL Server Management Studio
------------------------------
The action you attempted to perform on a remote instance of SQL Server has failed because the action requires a SQL Server component that is not installed on the remote computer. To proceed, install SQL Server 2005 Management Tools on the remote computer, and then try again. For more information, see "How to: Install SQL Server 2005 (Setup)" in SQL Server 2005 Books Online, or find the article on MSDN at http://go.microsoft.com/fwlink/?LinkID=57083 . (ObjectExplorer)

For help, click: http://go.microsoft.com/fwlink/?LinkID=57083
------------------------------
BUTTONS:
OK
------------------------------
--- конец ошибки ---

Не пойму в чем ошибки и куда смотреть? С SQL общаюсь мало.

Триггер на проверку

$
0
0
есть таблица выдача
и при записи должна происходить проверка, т.е дата возврата не может быть раньше даты выдачи
пытался
CREATE TRIGGER mytr1 
ON Выдача
FOR INSERT, UPDATE
AS
 
DECLARE @date1 TINYINT, @date2 TINYINT
 
SELECT @date1= DatePart (DAY, Дата_Выдачи)
@date2= DatePart (DAY, Дата_Возврата)
 
 
IF @date1> @date2
BEGIN
 
ROLLBACK TRAN
RAISERROR('ОШИБКА', 16, 10 )
END
Viewing all 7251 articles
Browse latest View live