четверг, 28 декабря 2017 г.

четверг, 5 октября 2017 г.

Восстановление SQL Server 2016

Возникла неприятная ошибка: служба инстанса SQL Server 2016 запускалась и тут же останавливалась. Что нужно делать?

Шаг 1. Посмотреть логи

Они находятся в файле

C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERV\MSSQL\Log\ERRORLOG

Обнаружилась следующая ошибка:

2017-10-03 16:28:46.66 spid6s      The log scan number (34:2952:1) passed to log scan in database 'model' is not valid. This error may indicate data corruption or that the log file (.ldf) does not match the data file (.mdf). If this error occurred during replication, re-create the publication. Otherwise, restore from backup if the problem results in a failure during startup.

среда, 5 июля 2017 г.

Connect python to MS SQL Database

 
  1. Install pyodbc with conda

    conda install -c anaconda pyodbc=4.0.17

    pyodbc is a Python DB API 2 module for ODBC. This project provides an up-to-date, convenient interface to ODBC using native data types like datetime and decimal.

  2. Write in jupyter notebook connection to database.

    import pyodbc
    cnxn = pyodbc.connect('Trusted_Connection=yes;DRIVER={SQL Server};SERVER=DESKTOP\SQLSERVER;DATABASE=positive;UID=user;PWD=password')

    Without Trusted Connection following error appears
    ProgrammingError: ('42000', '[42000] [Microsoft][ODBC SQL Server Driver][SQL Server]
  3. Print data row by row

    cursor = cnxn.cursor()
    cursor.execute("SELECT [id],[ttext] FROM [dbo].[sortpos]")
    rows = cursor.fetchall()
    for row in rows:
        print(row.id, row.ttext)
  4. Close connection

    pyodbc.Connection.close(cnxn)


вторник, 20 июня 2017 г.

Скрипты для создания/удаления внешних ключей


При работе с большими базами данных возникает проблема при удалении записей  из таблицы, на которую ссылается много других таблиц. Если все они содержат много данных, то проверка MS SQL на возможность удаления записи может длиться часами или даже сутками. 

Быстрый фикс - удаление внешних ключей, редактирование таблицы и обратное взведение ключей.