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

Восстановление БД

$
0
0
Доброго времени суток!
Мы пользуемся программой, которая построена на MS SQL 2008. Мы восстанавливаем БД из бэкапа раз в месяц. Тот, кто скидывает нам этот бэкап, скинул SQL-код для восстановления этой БД. Вот этот код:
USE master
GO

RESTORE DATABASE DBCHRK
	FROM  DISK = N'd:\Archiv\fullbackup.bak' 
WITH  
	FILE = 1,  
	NOUNLOAD,  
	REPLACE,
	STATS = 10
GO
USE DBCHRK;
GO
EXEC sp_change_users_login 'Update_One', 'USER1', 'USER1';
GO


Подскажите пожалуйста, что конкретно делает эта строка?!
EXEC sp_change_users_login 'Update_One', 'USER1', 'USER1';

USER1 это наш логин, под которым мы заходим в программу.

Как посмотреть размер индекса?

$
0
0
Как посмотреть размер индекса?

Проверка критериев пароля

$
0
0
Здравствуйте.
Появилась задача на проверку пароля критериям безопасности. Если с количеством используемых символов и их реестра более менее понятно, то проверка на комбинации типа "qwerty" создает затруднения.
Какие мысли по решению:
Создать таблицу (типа словаря брута) смежных клавиш клавиатуры. Каждая клавиша соответственно будет иметь набор значений символов (например для D это "DdВв"). Допустим ограничить "смежность" n-м уровнем. Таким образом получаем трехмерную матрицу запрещенных комбинаций.
Тогда например для клавиши с символом "D" и n=3 будут следующие недопустимые комбинации в пароле:
ASD
SDF
DFG
WED
EDC
TRD
и т.д.
Кто-то занимался подобной задачей или допустим реализацией алгоритма заполнения аналогичной матрицы?

Select

$
0
0
SELECT C.ContractID, E.Estimate, C1.CodePostav, C1.Firm + ' '+ L.LawForm AS NAME, AVG(C.Ball) AS Ball, e.RusName, C.[Status], C.Author, C.Received
  FROM _EstimateHeads E
  INNER JOIN _ApplicHeads A ON A.EstimateID = E.Estimate
  INNER JOIN ContractFullBall C ON E.Estimate = C.Estimate AND C.ContractID = A.Acceptor
  INNER JOIN ContractFull C1 ON A.Acceptor = C1.ID
  INNER JOIN ContractFullLawForm L ON L.LawID = C1.lawForm
  WHERE C.[Status] > 0 AND A.IsCash = 1 AND  E.Estimate = 18475000
GROUP BY C.ContractID, E.Estimate, C1.CodePostav, C1.Firm + ' '+ L.LawForm, e.RusName, C.[Status], C.Author, C.Received


Подскажите у меня не правильно выводит select

ContractID Estimate CodePostav Ball
----------- ----------- ----------- -----------
12813000 18475000 461 1
12813000 18475000 461 2
12813000 18475000 461 3
12813000 18475000 461 4
12813000 18475000 461 5

По сути это одна запись и должен выводится Ball = 3 к примеру

Обновление несуществующих строк

$
0
0
Как обновить строки, которых нет

Например:

таблица 1 таблица 2 таблица 3

a 01 id1 b id1
b 02 id2 c id2
c 03 id3 a

т.е. должен появиться id3 в таблице 3, куда можно выполнить update

Две таблицы, одинаковые данные, найти

$
0
0
Добрый вечер.
Есть задача, никак не могу решить её.
У меня есть 2 таблицы,в этих таблицах есть 5 полей (счет, дата, сумма, инн, код товара):
1) Нужно найти одинаковые записи по этим 5 полям
2) Нужно найти записи которые отсутствуют из 2 таблицы, также исходя из 5 полей

Никак не пойму как сделать!?
Если делать с inner, то получается много перекрестных.
Конечно самая большая загвоздка с п. 1)

Как можно решить данную проблему?

CDC add column

$
0
0
После активизации CDC на таблицу, возникает необходимость добавить колонку. И эта колонка не отслеживается. Предлагаемые решения сводятся к отключению и повторной активизации CDC. Есть ли у кого то ссылка на внутренние механизмы CDC? Хотелось бы иметь возможность внести изменения в ручную.

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

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

Написал вот такой алгоритм:

CREATE PROCEDURE [SMS_CountSMSInMessage]
  @Message	NVARCHAR(512),
  @Result	INT = 0 OUTPUT
AS
SET NOCOUNT ON;

SET @Result = 0

DECLARE @Position INT;
DECLARE @Format INT

SET @position = 1
SET @Format = 1

WHILE @position <= LEN(@Message)
BEGIN
  -- Если код символа > 127 то русские символы.
  IF ASCII(SUBSTRING(@Message, @position, 1)) > 127
    SET @Format = 2
  -- Если формат определён заранее выходим из цикла.
  IF @Format = 2
    BREAK
  SET @position = @position + 1
END;


Всё работает, проблем нет. Но всё это делалось для одной переменной. Теперь необходимо обернуть в функцию и использовать в запросах, где будет присутствовать в среднем 10т. записей. Я подумал, что может работать медленно т.к. каждую запись придётся сканировать в цикле.

Вопрос: есть ли другой более быстрый способ через T-SQL?

Ошибка: XQuery [nodes()]: The name ... does not denote a namespace

$
0
0
Коллеги, есть запрос:

declare @xml xml
set @xml='<V8Exch:_1CV8DtUD xmlns:V8Exch="http://www.1c.ru/V8/1CV8DtUD/" xmlns:v8="http://v8.1c.ru/data" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
	<V8Exch:Data>
		<CatalogObject.Организации>
			<Ref>e64e02a9-c2b8-11dd-8e9d-001a4dfc56fc</Ref>
		</CatalogObject.Организации>
	</V8Exch:Data>
</V8Exch:_1CV8DtUD>'



;with xmlnamespaces('http://www.1c.ru/V8/1CV8DtUD/' as V8Exch,'http://v8.1c.ru/data' as v8,'http://www.w3.org/2001/XMLSchema-instance' as xsi)
select top 1
	c.value('./Ref[1]','varchar(100)')
from
	@xml.nodes('/V8Exch:_1CV8DtUD/V8Exch:Data/CatalogObject.Организации') as r(c)


Почему-то сегодня на одном из серверов запрос начал вываливаться с ошибкой (на прошлой неделе все работало без ошибок):
Msg 2229, Level 16, State 1, Line 16
XQuery [nodes()]: The name "V8Exch" does not denote a namespace.

На других серверах такой проблемы нет.
Проблемный сервер:
Microsoft SQL Server 2005 - 9.00.4035.00 (X64)   Nov 24 2008 16:17:31   Copyright (c) 1988-2005 Microsoft Corporation  Developer Edition (64-bit) on Windows NT 5.2 (Build 3790: Service Pack 2) 

В чем может быть дело?

xml в resultset, нет данных :-(

$
0
0
declare
    @_xml xml;

set @_xml = N'<?xml version="1.0"?>
<Contract xmlns="urn:UralsibinsNamespace" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <NS1:RDIntegrationPolicy xmlns:NS1="http://tempuri.org/UralSib/HTSoap">
    <RecordNumber xmlns="">0</RecordNumber>
    <ProductName xmlns="">Тестовое решение</ProductName>
    <PolicySerial xmlns="">ТЕСТ</PolicySerial>
    <PolicyNumber xmlns="">1800007909</PolicyNumber>
    <PolicyStatus xmlns="">Акцептован</PolicyStatus>
    <PolicyInsCurrency xmlns="">рубли</PolicyInsCurrency>
    <PolicyEffectiveDate xmlns="">2016-08-10T00:00:00</PolicyEffectiveDate>
    <PolicyExpirationDate xmlns="">2031-08-10T00:00:00</PolicyExpirationDate>
    <PolicyPeriod xmlns="">0</PolicyPeriod>
    <IsSuccessor xmlns="">false</IsSuccessor>
    <Errors xmlns="">
      <string>Ошибка извлечения информации по полису: Input string was not in a correct format.</string>
    </Errors>
  </NS1:RDIntegrationPolicy>
</Contract>

';

print convert( nvarchar(max), @_xml);

select
    tbl.policy.value( 'RecordNumber[1]', 'int') as record_number,
    tbl.policy.value( 'ProductName[1]', 'varchar(100)') as product_name
from
    @_xml.nodes( 'Contract/RDIntegrationPolicy') as tbl( policy)
;


Коллеги, вот это не возвращает resultset, не понимаю почему. Подскажите, пожалуйста.

Права пользователей

$
0
0
Скажите пожалуйста,
как дать права юзеру так, чтобы он при подключении к серверу студией не видел баз, права на которые ему не даны?

Ему даны права на просмотр одной таблицы в одной базе.

Заранее благодарен.

failed with the operating system error 2(Не удается найти указанный файл.)

$
0
0
Пытаюсь создать базу данных:

CREATE DATABASE AdventureWorks2012
ON 
( 
FILENAME = 'C:\Temp\AdventureWorks2012_Data.mdf'
) 
FOR ATTACH_REBUILD_LOG;
GO 
ALTER AUTHORIZATION 
ON DATABASE::[AdventureWorks2012] TO sa;


Но MS выдает ошибку. В чем тут глюк?

автор
Сообщение 5133, уровень 16, состояние 1, строка 1
Directory lookup for the file "C:\Temp\AdventureWorks2012_Data.mdf" failed with the operating system error 2(Не удается найти указанный файл.).
Сообщение 15151, уровень 16, состояние 1, строка 8
Cannot find the database 'AdventureWorks2012', because it does not exist or you do not have permission.

онлайн встреча Russian Virtual Chapter - 21 сентября

$
0
0
Приглашаю на онлайн встречу Russian Virtual Chapter 21 сентября. Тема встречи: Azure SQL Data Warehouse: Что, Где и Как

Описание:
В докладе рассмотрим Что же это такое и зачем его использовать, чем отличается от имеющихся сервисов хранения данных в Azure, Где его использовать лучше всего и самое главное Как начать работать с ним.

Докладчик: Сергей Лунякин, Microsoft Data Platform MVP, лидер PASS Local Chapter в г. Львов. Работает как Senior DWH/BI Developer в ITMagination Inc (Warsaw). Отвечает за проектирование и разработку Data Warehouse and BI решений с использование Microsoft BI Stack. Имеет сертификаты MCSE BI, MCTS, MCP.

Регистрация: https://attendee.gotowebinar.com/register/3038393008192590081

Перенос RBS БД MS SQL на новый логический диск

$
0
0
Добрый день, коллеги !!!
автор
Microsoft SQL Server 2008 R2 (SP2) - 10.50.4319.0 (X64)
Jun 17 2014 18:50:01
Copyright (c) Microsoft Corporation
Enterprise Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1)

Есть БД MS SQL контента SharePoint 2010, в которой BLOB'ы более 1Мб вынесены в отдельное RBS по FILESTREAM
Картинка с другого сайта.
Необходимо переместить хранилище RBS на другой логический диск, стандартный для MS SQL деттач\аттач не работает в виду отсутствия выбора RBS при аттаче БД
Картинка с другого сайта.
Как переместить хранилище RBS такой БД на другой логический диск ?

Пока экспериментальным путём пришёл к следующим решениям отвечающим поставленной задаче:

1) Сделать полные резервные копии БД, искомые БД с сервера полностью удалить, затем развернуть БД из полной резервной копии по старым путям для mdf и ldf файлов и новому пути для RBS

2) Сделать деаттач БД в MS SQL, файлы RBS со всей структурой каталогов и правами перенести на требуемый логический диск X:, размонтировать логический диск G:, присвоить логическому диску X: имя G:, приаттачить БД в MS SQL

Как правильно будет поступить, может есть рекомендации, мануал или какое-то техническое обоснование более правильного из действий, а может есть 3тий вариант ?

Как выбрать списко таблиц и вью?

$
0
0
Как скриптом получить список таблиц и вью, на которые у public нет никаких прав?

Запрос по иерархии

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

результат сложного запроса:
1 2
2 3
4 5
7 8
8 9
9 10

Далее надо раскрутить на отрезки, т.е результат должен быть

1 3 4 5 7 10

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

Кто - нибудь сталкивался??

Вопрос про DatabaseProject

$
0
0
Есть база данных, которая используется в продакшене, код ее объектов не хранится в виде проекта
Для нее были написаны несколько дополнительных процедур, которые нужно хранить в проекте
можно ли как-то сделать что бы проект содержал в себе и мог деплоить только несколько процедур и при этом не деплоил никаких настроек БД?

Проверка наличия информации в базе по кредитных картах.

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

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

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

SQL запрос

Cumulative update 1 for SQL Server 2014 SP2

Viewing all 7251 articles
Browse latest View live