Архив метки: mssql

C# Подключение к базе данных MSSQL

using System.Data.SqlClient;
string query = @"select 1";
            using (var connection = new SqlConnection("user id=Vasya;password=P@$w0rd;server=MyServer;database=MyBase;connection timeout=10;")) {
                connection.Open();
                using (var command = new SqlCommand(query, connection)){
                    command.CommandTimeout = 290;
                    using(SqlDataReader reader = command.ExecuteReader()){
                        int rowcounter = -1;
                        while (reader.Read()) {
                            rowcounter++; //счётчик строк в результате запроса
                            //заполняем значения в сохранённой строке
                            if (reader["My_Column"] is int) {
                                int n = (int)reader["My_Column "];
                            }
                            //…
                        }
                        reader.Close();
                    }
               }
          }
//добавить обработчики исключений

Для подключения к базе не под логином и паролем, а через доменную авторизацию под текущей виндовой учёткой строка будет такой:

using (var connection = new SqlConnection("server=MyServer;database=MyBase;connection timeout=10; Integrated Security=True;")) {}

MS SQL Умножение Numeric без округлений

Более-менее рабочий пример, чтоб например 4.5 не превратилось в 5

DECLARE @tmp_cnt Numeric (18,10)

DECLARE @tmp_uet Numeric (18,10)

…

@tmp_cnt = 1.0

@tmp_uet = 4.5

…

CAST (

      @tmp_cnt * @tmp_uet

AS Numeric(18,10))

Всё работает из-за (18,10) (precision, scale)

Ещё подробности здесь:

https://habrahabr.ru/post/205938/

C#: пример подключения к базе данных MSSQL

C#: пример подключения к базе данных MSSQL

/*
  * Created by SharpDevelop.
  * http://kmsvsr.ru
  * Date: 11.04.2015
  * Time: 15:23
  */
 using System;
 using System.Data.SqlClient;
 
 namespace ExecSQL
 {
     class Program
     {
         public static void Main(string[] args)
         {
             Console.WriteLine("Let`s execute our query!");
     
             using (SqlConnection con = new SqlConnection("user id=sa;password=Pa$$w0rd;server=192.168.3.4;database=MyBase;connection timeout=30;"))
             {
                 con.Open();
                 using (SqlCommand command = new SqlCommand("select COLUMN1 from MYTABLE where COLUMN2 ='http://kmsvsr.ru'", con))
                 using (SqlDataReader reader = command.ExecuteReader())
                 {
                 while (reader.Read())
                 {
                     //Console.WriteLine("{0} {1} {2}", reader.GetInt32(0), reader.GetString(1), reader.GetString(2));
                     Console.WriteLine("{0}", reader.GetInt32(0));
                 }
                 }
             }
             
             Console.Write("Press any key to exit . . . ");
             Console.ReadKey(true);
         }
     }
 }

Решено: База MSSQL переходит в Recovery_Pending

База MSSQL переходит в Recovery_Pending раз в неделю в одно и то же время
в журнале windows событие 17204
http://support.microsoft.com/kb/2015754
Причина – файлы базы данных блокировались при резервном копировании содержимого диска командой robocopy по расписанию
Решение – переделать резервное копирование на встроенные в MSSQL средства, исключить папки с базами данных из бэкапа через robocopy