Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Microsoft SQL Server

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55

Открыть новую тему     Написать ответ в эту тему

Megard

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
MICROSOFT SQL SERVER
 
тема посвящена выяснению ответов на вопросы, касающихся установки, функционирования и использования Microsoft SQL Server; также обсуждаются вопросы, касающиеся использования T-SQL (диалект SQL-языка, используемого в этой версии сервера)
 
популярные ответы на популярные вопросы "где скачать?" и "чем сломать?" можно найти здесь

 
 
Официальная документация:
SQL Server 2005 Books Online (original/english, 135MB, september 2007);
SQL Server 2005 Books Online (перевод/русский, 148MB, январь 2009);
 
 
Официальные обновления:
[для версий, начиная с 9.0.3042] / [полный перечень обновлений / зеркало]
03/06/2007: KB933508 (9.0.3042 > 9.0.3050);
04/03/2007: KB934458 (9.0.3050 > 9.0.3054);
04/03/2007: KB934459 (9.0.3054 > 9.0.3159);
06/28/2007: KB936305 (9.0.3159 > 9.0.3175);
 
 
Альтернативные источники информации:
sql.ru - очень полезный ресурс с говорящим за себя названием; пожалуй, лучший (если не единственный) на просторах ru'нета; кроме форумов есть большая подборка статей, FAQ, и прочее.

Всего записей: 135 | Зарегистр. 13-09-2002 | Отправлено: 11:49 18-07-2003 | Исправлено: niichavo, 16:13 02-04-2010
zsv

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
.

Всего записей: 25 | Зарегистр. 20-08-2003 | Отправлено: 09:52 16-01-2004
zenant



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
zsv
1. Никогда не флуди и не поднимай темы н этом форуме
2. Проблема с твоей процедурой наверняка связана с блокировками. Надо смотреть что и как блокируется в предыдущих запросах, если ли транзакции, какие у них уровни изоляции. Смотреть можно в Enterprise Manager в окошке Management -> Current Activity.
3. Надеюсь ты не вставляешь в таблицу записи выбранные из нее самой?

Всего записей: 194 | Зарегистр. 01-09-2002 | Отправлено: 10:26 16-01-2004
zsv

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Я бы вообще на форум не обращался, тем более что мне это никак не удобно, просто выхода у меня нет, спросить про проблему не у кого.
Мне конечно слабо помог твой ответ, zenant. Наверное мне надо это разжевать попонятнее. С транзакциями и блокировками я практически не знаком.
Огромная просьба к zenant или др. гуру скл. Найдите меня в асе 262612210 или на мыло, чтобы поподробнее пообщаться.
 
и еще. я не совсем понял насчет не флудить и поднимать тему

Всего записей: 25 | Зарегистр. 20-08-2003 | Отправлено: 10:40 16-01-2004
Megard

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Подскажите плз, как составить запрос, чтобы вывести записи, к примеру, с десятой по двадцатую. id записей использовать нельзя,  так как нумерация не сквозная. Не используя хранимых процедур. Нужен просто SQL-запрос.  

 

Цитата:
select top n *  
from (select top m *  
from table1 order by id asc) as t order by id desc  
 
n - кол-во записей на страницу  
m - n*номер требуемой страницы. (Если n=5, то для 10-ой страницы m=50)  
поле id - ключ, не обязательно правильно упорядоченный  

 
Еще усложню задачу: Как сделать тоже самое, если таблиц несколько?

Всего записей: 135 | Зарегистр. 13-09-2002 | Отправлено: 18:48 20-02-2004
Bloody_Nokia_Adept



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Megard

Цитата:
Еще усложню задачу: Как сделать тоже самое, если таблиц несколько?

Эстет...
 
Если серьезно, то нормально делается только на хранимых процедурах, т.к. шаманство с top не очень производительно. Предлагаю копнуть форум по MS SQL небезизвестного sql.ru на предмет этих выборок - там раньше целый FAQ заводили и дискуссию на 10 экранов разводили.

Всего записей: 785 | Зарегистр. 27-11-2002 | Отправлено: 20:39 21-02-2004
Megard

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Эх! Не могу я хранимые процедуры из PHP использовать!

Всего записей: 135 | Зарегистр. 13-09-2002 | Отправлено: 19:07 23-02-2004
Bloody_Nokia_Adept



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Megard

Цитата:
Эх! Не могу я хранимые процедуры из PHP использовать!

И расскажи мне о принципиальной разнице между вызовом

Цитата:
select * from tab where col = ?

и  

Цитата:
exec some_proc(?)
,
которая внутри себя делает этот вызов?
ИМХО, это заблуждение о невозможности использования хранимого кода в вызовах PHP - ему  все равно, т.к. реально разбор делается на более низких уровнях. Я бы запрятал все в одну хранимую процедуру, которая возвращала бы требуемое результирующее множество.

----------
Дядя Фёдор, пес и кот - все в одном лице живет!
Он обфукать любит сразу, вот такая вот зараза!
Эпиграмма на меня, "1001 ночь ХАИ", 535 гр., 1999 г.

Всего записей: 785 | Зарегистр. 27-11-2002 | Отправлено: 19:22 23-02-2004 | Исправлено: Bloody_Nokia_Adept, 19:26 23-02-2004
Borduk



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Объясните, пожалуйста, почему в запросе на обновление:
 
   update #t set #t.cl = #t.cl + 1
   from #t, t1
   where #t.[id] = t1.[id]
 
участвуют не все записи из таблицы t1, а только одна из них (первая?)
(значения [id] в t1 могут содержать /*как правило - содержат*/ одинаковые значения?
 
Ведь условие объединения from #t, t1 where #t.[id] = t1.[id] является условием объединения "многие-ко-многим" - или я ошибаюсь ?

Всего записей: 9 | Зарегистр. 26-07-2003 | Отправлено: 21:28 25-03-2004
someone312002



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

Цитата:
Эх! Не могу я хранимые процедуры из PHP использовать!

Ну, что я могу тебе сказать про Магадан ...
Есть один выход, правда многие просто не согласяться...
Если данные "не критичны", то бишь есть такой временной промежуток, в котором ГЛАВНАЯ таблица может попасть "под раздачу", то делай следущее...
Условие: есть несколько таблиц, данные мз которых выводяться ПОСТРАНИЧНО на веб-страницу, Есть также "главная" таблица, по которой связываются данные с другими (классифицирующими ? ) таблицами, есть условие, по которому ОБЯЗАТЕЛЬНО должны быть отсортированы данные.  
Что ты можешь сделать: ночью (к примеру) создаёшь временную таблицу селектом и отсортированную по данному условию-полю. Удаляешь и вновь создаёшь свою главную таблицу и заносишь в них уже остортированные данные, НО... не просто заносишь, а с ПОРЯДКОВЫМ НОМЕРОМ ЗАПИСИ... дальше, создаёшь вьюшку, по которой выгребаешь данные из нескольких таблиц, далее уже из вьюшки делаешь селект, где проставляешь условие <vCounter> between CountFirst and CountSecond . Данная функция действительна как для оракл, так и для мс скл серверов.
 
Гуру, опять же таки, если я не прав - киньте в меня чем-нить тяжёлым и корявым...


----------
"я не волшебник - я только учусь" (c)

Всего записей: 235 | Зарегистр. 19-08-2002 | Отправлено: 17:29 26-03-2004
griin



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Есть хранимая процедура:

Код:
 
CREATE PROCEDURE procSelectLastOperationNumber
@Date smalldatetime
AS
DECLARE @Count int
SELECT @Count = COUNT(*) FROM Operations WHERE Date = @Date
RETURN @Count
GO
 

Эта процедура просто считает количество записей за указанную дату. Вопрос: как передать результат работы процедуры в VB?
 
Делаю так:

Код:
 
Set Recordset = Connection.Execute("EXEC procSelectLastOperationNumber ""02.04.2004""")
 

Если бы это был простой селект * фром таблица, то дальше можно было бы просто в цикле обращаться к Recordset.Fields("Имя_поля").Value, а вот как получить результат в случае такой процедуры - не знаю...

----------
- Дядя Вова, цапу надо крутить, цапу. // - На! Сам делай! // - Мне нельзя, я чатланин. // - Уйди отсюда! Как советовать, так все чатлане, как работать, так...

Всего записей: 567 | Зарегистр. 03-01-2003 | Отправлено: 15:57 02-04-2004
someone312002



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
для параметров хранимой процедуры можно проставить OUTPUT, и вызывать её также надо будет с этим параметром, к примеру:
procedure sp1 (param1 varchar(10), param2 varchar(10) OUTPUT)
as begin...
 
дык вызывать её небоходимо будет так:
создаёшь переменные, для того, чтобы их передать процедуре (декларируешь)
потом, к примеру вызов из скл:
exec sp1(@var1, @var2 OUTPUT)
дальше делай что хочешь с @var2, поскольку твоя процедура возвратит в переменную необходимое значение коунт (если ты в теле процедуры сделаешь присвоение...)
Вот и всё...
 
Чтобы не быть голословным - пример из БОЛ:

Код:
USE Northwind
GO
DROP PROCEDURE OrderSummary
GO
CREATE PROCEDURE OrderSummary @MaxQuantity INT OUTPUT AS
-- SELECT to return a result set summarizing
-- employee sales.
SELECT Ord.EmployeeID, SummSales = SUM(OrDet.UnitPrice * OrDet.Quantity)
FROM Orders AS Ord
     JOIN [Order Details] AS OrDet ON (Ord.OrderID = OrDet.OrderID)
GROUP BY Ord.EmployeeID
ORDER BY Ord.EmployeeID
 
-- SELECT to fill the output parameter with the
-- maximum quantity from Order Details.
SELECT @MaxQuantity = MAX(Quantity) FROM [Order Details]
 
-- Return the number of all items ordered.
RETURN (SELECT SUM(Quantity) FROM [Order Details])
GO
 
-- Test the stored procedure.
 
-- DECLARE variables to hold the return code
-- and output parameter.
DECLARE @OrderSum INT
DECLARE @LargestOrder INT
 
-- Execute the procedure, which returns
-- the result set from the first SELECT.
EXEC @OrderSum = OrderSummary @MaxQuantity = @LargestOrder OUTPUT
 
-- Use the return code and output parameter.
PRINT 'The size of the largest single order was: ' +
                 CONVERT(CHAR(6), @LargestOrder)
PRINT 'The sum of the quantities ordered was: ' +
                 CONVERT(CHAR(6), @OrderSum)
GO
 
 


----------
"я не волшебник - я только учусь" (c)

Всего записей: 235 | Зарегистр. 19-08-2002 | Отправлено: 16:25 02-04-2004
Megard

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите, плз, есть ли способ импортировать таблицу из MS SQL в MySql?

Всего записей: 135 | Зарегистр. 13-09-2002 | Отправлено: 10:34 22-06-2004
naPmu3aH



Из лесу вышел
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Megard
Описание или данные?
 
В первом случае - где-то в меню EM есть пункт "Generate scripts", потом возможно потребуется доводка руками под MySQL
Во втором - экспорт/импорт через текстовый файл или через ODBC, если есть нормальный ODBC драйвер для MySQL

----------
Ну і хто тебе кликав, чому ти прийшла, Стара проститутка, сука-війна? Хто тобі платить за наші тіла? Скільки ще тобі треба, яка їх ціна?

Всего записей: 4642 | Зарегистр. 30-10-2001 | Отправлено: 11:08 22-06-2004
Megard

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Т.е программы, в которой есть просто кнопка "конвертровать из MS SQL в MySql?" нету?
Мне тут где-то попадалась програмка, которая позволяет это проделывать с Аксесом. Я думал может и для MS Sql такая есть.

Всего записей: 135 | Зарегистр. 13-09-2002 | Отправлено: 10:51 23-06-2004 | Исправлено: Megard, 10:55 23-06-2004
Borduk



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
griin
Recordset.MoveFirst
Recordset.Fileds[0].Value вернет необходимое значение

Всего записей: 9 | Зарегистр. 26-07-2003 | Отправлено: 21:20 14-07-2004
Bill_PHO

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Не качал ли кто патчи для MS SQL Server, которые вышли после 3 пака?
 
Майкрософт не дает закачать их просто так.
 
А после установки XP SP2 перстал нормально работать отладчик.

Всего записей: 287 | Зарегистр. 15-08-2003 | Отправлено: 10:24 02-12-2004
zsv

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите, как в поле типа Image или Text (SQL Server 2000) закачать файл лежащий на сервере.
Скрипт должен быть написан в сохраненной процедуре, а я только вызывать процедуру с клиента.

Всего записей: 25 | Зарегистр. 20-08-2003 | Отправлено: 18:50 11-01-2005
mvgfirst



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
В сети две машины всего (сеть - патчкорд кроссоверный). Один - ноутбук (WinXP Corp Ed. SP1), второй - полноценный комп (WINXP CorpEd SP2). На ноутбук установлен MSDE2000 SP3. На ноутбуке EM, QA и прочий софт (в том числе 1С) подключаются к серверу и работают... без проблем.
При попытке произвести подключение со второго компьютера (любым софтом) выдает сообщение "SQL server does not exists or access denid" (извините если не так написал - пишу по памяти) Вообщем смысл понятен.
Сеть - рабочая группа.  
 
Из того что попробовал сделать...  
1. Отключил все фаерволы... дабы не мешали в том числе и встроенные.
2. Прописал пользователя второго компьютера в качестве администратора на первом.
3. Установил режим аутентификации на SQL сервере совместную "Windows & SQL" и попробовал зайти под логином "sa".  
 
Вышеперечисленные действия эффекта не возымели....
Помогите... уладить вопрос... или укажите на причину возникновения этих сложностей.
 
1. Может ли быть причиной тому - SP2 для WinXP
2. Каким образом можно диагностировать причину отказа в доступе к SQL серверу. Т.е. другими словами какие утилиты можно применить что бы получить боле развернутую информацию???
 
P.S. В журнале событий системы на обеих компьютерах - ни слова о проблемах с SQL сервером.
 
P.P.S. Пробовал на второй компьютер ставить MSDE та же картина, только в зеркальном отображении с ноутбука невозможно присоединится к серверу на втором компьютере.
Еще замечу что доступ к дискам, файлам и прочим "шарам" по сети проходит нормально... нет возможности только подключится к серверу.

----------
В борьбе бобра с ослом - всегда побеждает бобро!

Всего записей: 1079 | Зарегистр. 03-09-2002 | Отправлено: 07:21 18-01-2005
ShurilloM

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Народ, подскажите плиз как посмотреть/отредактировать/удалить задания на backup базы сделанные мной. У меня MS SQL 7.0, задания назначались из Enterprise Manager (правый клик по базе - все задачи - backup database.)  
 
И еще вопрос: При установке MS SQL 7.0 который идет в комплекте с 1С задаются вопросы про порядок сортировки и кодовую страницу (дословно не помню). Я ставил с другой компашки и таких вопросов он не задавал. Это грозит чем-нибудь неприятным для моей базы? Сейчас можно как-то исправить это дело без переустановки?

Всего записей: 12 | Зарегистр. 12-03-2004 | Отправлено: 09:16 18-01-2005 | Исправлено: ShurilloM, 09:23 18-01-2005
aadym



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ShurilloM

Цитата:
Народ, подскажите плиз как посмотреть/отредактировать/удалить задания на backup базы сделанные мной. У меня MS SQL 7.0, задания назначались из Enterprise Manager (правый клик по базе - все задачи - backup database.)  

 
Management - SQL Server Agent - Jobs
 

Цитата:
И еще вопрос: При установке MS SQL 7.0 который идет в комплекте с 1С задаются вопросы про порядок сортировки и кодовую страницу (дословно не помню). Я ставил с другой компашки и таких вопросов он не задавал. Это грозит чем-нибудь неприятным для моей базы? Сейчас можно как-то исправить это дело без переустановки?  

 
Возможно некорректное отображение кириллицы.

Всего записей: 177 | Зарегистр. 26-12-2001 | Отправлено: 09:48 18-01-2005
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Microsoft SQL Server


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru