20:02:33 От Пользователь Otus : Коллеги, добрый вечер 20:02:47 От Алексей Смирнов кому Ведущие вебинара и участники : Добрый 20:03:08 От Александр Голиков : добрый вечер. видно + слышно + 20:03:10 От Пользователь Otus : как видно и как слышно 20:03:11 От Алексей Смирнов кому Ведущие вебинара и участники : Видно и слышно 20:03:15 От Сергей : ++ 20:03:17 От Александр Голиков : сылшно 20:03:18 От Пользователь Otus : а что печатаю видно? 20:03:22 От Сергей : + 20:03:28 От Алексей Смирнов : да 20:03:29 От Александр Голиков : что слышно что печатаюте 20:03:32 От Sergey Prokopchuk : + 20:06:11 От Пользователь Otus : https://en.wikipedia.org/wiki/Data_definition_language 20:09:09 От Сергей : +- 20:09:10 От Александр Голиков : - 20:09:17 От Александр Голиков : главное потом в уроке текст 20:09:18 От Sergey Prokopchuk : - 20:09:20 От Алексей Смирнов кому Ведущие вебинара и участники : - 20:09:35 От Алексей Смирнов кому Ведущие вебинара и участники : на айпэд нет сиквел сервера 20:09:36 От Александр Голиков : + 20:09:51 От Сергей : + 20:10:53 От Алексей Смирнов : к уроку же будут потом скрипты приложены как всегда? 20:13:44 От Sergey Prokopchuk : + 20:13:44 От Сергей : + 20:13:45 От Александр Голиков : + 20:13:52 От Алексей Смирнов кому Ведущие вебинара и участники : 42 20:14:19 От Алексей Смирнов кому Ведущие вебинара и участники : положительный ответ) 20:21:15 От Александр Голиков : + 20:21:18 От Sergey Prokopchuk : + 20:21:19 От Сергей : + 20:21:30 От Алексей Смирнов кому Ведущие вебинара и участники : 42 20:27:51 От Пользователь Otus : 32767 20:28:34 От Пользователь Otus : sp_changedbowner 20:32:18 От Алексей Смирнов : 32 20:32:20 От Сергей : 32 20:32:24 От Sergey Prokopchuk : 32 20:32:31 От Александр Голиков : 32 20:37:07 От Пользователь Otus : создание базы 20:37:08 От Пользователь Otus : USE master; GO CREATE DATABASE DDL; GO -- Verify the database files and sizes SELECT name, size, size*1.0/128 AS [Size in MBs] FROM sys.master_files WHERE name = N'DDL'; GO 20:37:47 От Пользователь Otus : создание базы данных с расширенными опциями USE master; GO CREATE DATABASE DDL ON ( NAME = DDL_dat, FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\DATA\ddldat.mdf', SIZE = 10, MAXSIZE = 50, FILEGROWTH = 5 ) LOG ON ( NAME = DDL_log, FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\DATA\ddllog.ldf', SIZE = 5MB, MAXSIZE = 25MB, FILEGROWTH = 5MB ) ; GO 20:38:14 От Пользователь Otus : с множественными файлами данных USE master; GO CREATE DATABASE Archive ON PRIMARY (NAME = Arch1, FILENAME = 'C:\D\archdat1.mdf', SIZE = 100MB, MAXSIZE = 200, FILEGROWTH = 20), ( NAME = Arch2, FILENAME = 'C:\D\archdat2.ndf', SIZE = 100MB, MAXSIZE = 200, FILEGROWTH = 20), ( NAME = Arch3, FILENAME = 'C:\D\archdat3.ndf', SIZE = 100MB, MAXSIZE = 200, FILEGROWTH = 20) LOG ON (NAME = Archlog1, FILENAME = 'C:\D\archlog1.ldf', SIZE = 100MB, MAXSIZE = 200, FILEGROWTH = 20), (NAME = Archlog2, FILENAME = 'C:\D\archlog2.ldf', SIZE = 100MB, MAXSIZE = 200, FILEGROWTH = 20) ; GO 20:40:45 От Пользователь Otus : почти то же самое USE master; GO CREATE DATABASE Sales ON PRIMARY ( NAME = SPri1_dat, FILENAME = 'C:\D\SPri1dat.mdf', SIZE = 10, MAXSIZE = 50, FILEGROWTH = 15% ), ( NAME = SPri2_dat, FILENAME = 'C:\D\SPri2dt.ndf', SIZE = 10, MAXSIZE = 50, FILEGROWTH = 15% ), FILEGROUP SalesGroup1 ( NAME = SGrp1Fi1_dat, FILENAME = 'C:\D\SG1Fi1dt.ndf', SIZE = 10, MAXSIZE = 50, FILEGROWTH = 5 ), ( NAME = SGrp1Fi2_dat, FILENAME = 'C:\D\SG1Fi2dt.ndf', SIZE = 10, MAXSIZE = 50, FILEGROWTH = 5 ), FILEGROUP SalesGroup2 ( NAME = SGrp2Fi1_dat, FILENAME = 'C:\D\SG2Fi1dt.ndf', SIZE = 10, MAXSIZE = 50, FILEGROWTH = 5 ), ( NAME = SGrp2Fi2_dat, FILENAME = 'C:\D\SG2Fi2dt.ndf', SIZE = 10, MAXSIZE = 50, FILEGROWTH = 5 ) LOG ON ( NAME = Sales_log, FILENAME = 'C:\D\salelog.ldf', SIZE = 5MB, MAXSIZE = 25MB, FILEGROWTH = 5MB ) ; GO 20:42:13 От Сергей : 64 20:42:17 От Александр Голиков : 64 20:42:20 От Алексей Смирнов : 64 20:43:34 От Пользователь Otus : пример на attach USE master; GO sp_detach_db Archive; GO CREATE DATABASE Archive ON (FILENAME = 'D:\SalesData\archdat1.mdf') FOR ATTACH ; GO 20:44:40 От Пользователь Otus : снмок базы данных USE master; GO CREATE DATABASE sales_snapshot0600 ON ( NAME = SPri1_dat, FILENAME = 'C:\D\SPri1dat_0600.ss'), ( NAME = SPri2_dat, FILENAME = 'C:\D\SPri2dt_0600.ss'), ( NAME = SGrp1Fi1_dat, FILENAME = 'C:\D\SG1Fi1dt_0600.ss'), ( NAME = SGrp1Fi2_dat, FILENAME = 'C:\D\SG1Fi2dt_0600.ss'), ( NAME = SGrp2Fi1_dat, FILENAME = 'C:\D\SG2Fi1dt_0600.ss'), ( NAME = SGrp2Fi2_dat, FILENAME = 'C:\D\SG2Fi2dt_0600.ss') AS SNAPSHOT OF Sales ; GO 20:44:49 От Алексей Смирнов кому Ведущие вебинара и участники : если директории нет, она создастся? 20:45:02 От Александр Голиков : как быстро делается снапшот ? для 100 гб бд ? 20:45:07 От Алексей Смирнов кому Ведущие вебинара и участники : понял 20:45:20 От Александр Голиков : 10 гб ? 20:45:51 От Александр Голиков : а доступность рабочей бд как то сильно снижается ? 20:47:57 От Пользователь Otus : сортировка USE master; GO IF DB_ID (N'MyOptionsTest') IS NOT NULL DROP DATABASE MyOptionsTest; GO CREATE DATABASE MyOptionsTest COLLATE French_CI_AI WITH TRUSTWORTHY ON, DB_CHAINING ON; GO --Verifying collation and option settings. SELECT name, collation_name, is_trustworthy_on, is_db_chaining_on FROM sys.databases WHERE name = N'MyOptionsTest'; GO 20:53:20 От Александр Голиков : DROP DATABASE Snapshot ? 20:53:34 От Sergey Prokopchuk : а почему не можна удалить снепшот? 20:54:26 От Александр Голиков : Видно в студии что она Recovery Pending 20:54:37 От Александр Голиков : msdb 20:55:08 От Sergey Prokopchuk : - 20:55:12 От Сергей : - 20:55:18 От Алексей Смирнов : - 20:59:18 От Пользователь Otus : EXECUTE ('CREATE DATABASE FileStreamDB ON PRIMARY ( NAME = FileStreamDB_data ,FILENAME = ''' + @data_path + 'FileStreamDB_data.mdf'' ,SIZE = 10MB ,MAXSIZE = 50MB ,FILEGROWTH = 15% ), FILEGROUP FileStreamPhotos CONTAINS FILESTREAM DEFAULT ( NAME = FSPhotos ,FILENAME = ''C:\myFTCatalogs\Photos'' -- SIZE and FILEGROWTH should not be specified here. -- If they are specified an error will be raised. , MAXSIZE = 5000 MB ), ( NAME = FSPhotos2 , FILENAME = ''C:\D\myFTCatalogs\Photos'' , MAXSIZE = 10000 MB ), FILEGROUP FileStreamResumes CONTAINS FILESTREAM ( NAME = FileStreamResumes ,FILENAME = ''C:\myFTCatalogs\Resumes'' ) LOG ON ( NAME = FileStream_log ,FILENAME = ''' + @data_path + 'FileStreamDB_log.ldf'' ,SIZE = 5MB ,MAXSIZE = 25MB ,FILEGROWTH = 5MB )' ); GO 21:01:46 От Алексей Смирнов кому Ведущие вебинара и участники : все ми ли опциями создания бд можно рулить через интерфейс или есть что-то что рулится только скриптами? 21:02:46 От Sergey Prokopchuk : 256 21:02:48 От Алексей Смирнов кому Ведущие вебинара и участники : 256 21:02:50 От Сергей : 256 21:02:54 От Александр Голиков : 256 21:04:51 От Пользователь Otus : MUST_CHANGE 21:06:26 От Пользователь Otus : создание CREATE LOGIN student WITH PASSWORD = 'Pa$$w0rd'; GO 21:07:30 От Александр Голиков : может быть смешанная 21:08:47 От Пользователь Otus : создание кредов CREATE CREDENTIAL [StudentCredentials] WITH IDENTITY = N'WIN-01O5SCPD3P5\Guest', SECRET = N'Pa$$w0rd' GO CREATE LOGIN student3 WITH PASSWORD = 'Pa$$w0rd', CREDENTIAL = StudentCredentials; GO 21:09:33 От Пользователь Otus : создание логина windows 21:09:43 От Пользователь Otus : CREATE LOGIN [WIN-01O5SCPD3P5\vagrant] FROM WINDOWS WITH DEFAULT_DATABASE=[master] GO 21:13:28 От Пользователь Otus : sp_spaceused 21:13:59 От Сергей : 1 21:14:04 От Sergey Prokopchuk : 1 21:14:07 От Александр Голиков : кластарезированый 1 21:20:51 От Пользователь Otus : use Sales; CREATE TABLE dbo.PurchaseOrderDetail ( PurchaseOrderID int NOT NULL REFERENCES Purchasing.PurchaseOrderHeader(PurchaseOrderID), LineNumber smallint NOT NULL, ProductID int NULL REFERENCES Production.Product(ProductID), UnitPrice money NULL, OrderQty smallint NULL, ReceivedQty float NULL, RejectedQty float NULL, DueDate datetime NULL, rowguid uniqueidentifier ROWGUIDCOL NOT NULL CONSTRAINT DF_PurchaseOrderDetail_rowguid DEFAULT (newid()), ModifiedDate datetime NOT NULL CONSTRAINT DF_PurchaseOrderDetail_ModifiedDate DEFAULT (getdate()), LineTotal AS ((UnitPrice*OrderQty)), StockedQty AS ((ReceivedQty-RejectedQty)), CONSTRAINT PK_PurchaseOrderDetail_PurchaseOrderID_LineNumber PRIMARY KEY CLUSTERED (PurchaseOrderID, LineNumber) WITH (IGNORE_DUP_KEY = OFF) ) 21:21:48 От Алексей Смирнов кому Ведущие вебинара и участники : недавно читал статью со сравнением интовых ПК и гуидных. Если генерировать гуид на стороне приложения - производительность даже была местами лучше чем генеерация интового ПК на стороне сиквелсервера 21:22:02 От Пользователь Otus : для домашки USE AdventureWorks2016; GO CREATE TABLE HumanResources.EmployeeResumes (LName nvarchar(25), FName nvarchar(25), Resume xml( DOCUMENT HumanResources.HRResumeSchemaCollection) ); 21:30:09 От Пользователь Otus : пример на расчитываемые столбцы use MyDB; CREATE TABLE dbo.mytablecalc ( low int, high int, myavg AS (low + high)/2 ) 21:31:14 От Пользователь Otus : spars 21:31:20 От Пользователь Otus : sparse 21:33:16 От Пользователь Otus : use MyDB; CREATE TABLE dbo.Tablesparse (c1 int PRIMARY KEY, c2 varchar(50) SPARSE NULL ) ; 21:34:40 От Сергей : 512 21:34:43 От Sergey Prokopchuk : 512 21:34:44 От Алексей Смирнов кому Ведущие вебинара и участники : 512 21:34:59 От Пользователь Otus : DROP DATABASE 21:35:07 От Пользователь Otus : DBCC SHRINKDATABASE 21:37:09 От Алексей Смирнов кому Ведущие вебинара и участники : а еще есть статус suspected 21:40:59 От Пользователь Otus : DBCC SHRINKDATABASE 21:42:04 От Пользователь Otus : DBCC SHRINKFILE 21:42:11 От Пользователь Otus : EMPTYFILE 21:42:31 От Пользователь Otus : sp_filestream_force_garbage_collection 21:42:48 От Пользователь Otus : ALTER DATABASE 21:42:53 От Пользователь Otus : REMOVE FILE 21:43:51 От Пользователь Otus : alter 21:43:59 От Пользователь Otus : добавление файла USE master; GO ALTER DATABASE MyupdDB ADD FILE ( NAME = Test1dat2, FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\DATA\t1dat2.ndf', SIZE = 5MB, MAXSIZE = 100MB, FILEGROWTH = 5MB ); GO 21:46:11 От Пользователь Otus : увеличение размера файла USE master; GO ALTER DATABASE MyupdDB MODIFY FILE (NAME = test1dat3, SIZE = 20MB); GO 21:47:02 От Пользователь Otus : где tempdb SELECT name, physical_name FROM sys.master_files WHERE database_id = DB_ID('tempdb'); GO 21:47:42 От Пользователь Otus : перемещение файлов USE master; GO ALTER DATABASE tempdb MODIFY FILE (NAME = tempdev, FILENAME = 'E:\SQLData\tempdb.mdf'); GO ALTER DATABASE tempdb MODIFY FILE (NAME = templog, FILENAME = 'E:\SQLData\templog.ldf'); GO 21:49:35 От Пользователь Otus : изменение статуса базы данных USE master; GO ALTER DATABASE DBOPTION SET SINGLE_USER WITH ROLLBACK IMMEDIATE; GO 21:55:29 От Пользователь Otus : alter login ALTER LOGIN student_alter_duble WITH PASSWORD = 'pass@w0rd1' UNLOCK ; 21:55:54 От Sergey Prokopchuk : +- 21:56:01 От Алексей Смирнов кому Ведущие вебинара и участники : 13 21:56:12 От Александр Голиков кому Ведущие вебинара и участники : 13 21:59:40 От Александр Голиков кому Ведущие вебинара и участники : в кавычках 22:00:24 От Пользователь Otus : EXEC sp_help EmplTable ; 22:01:29 От Пользователь Otus : ALTER TABLE dbo.doc_exc ADD column_b VARCHAR(20) NULL CONSTRAINT exb_unique UNIQUE ; 22:02:51 От Пользователь Otus : изменение таблицы с заполнением по умолчанию ADD AddDate smalldatetime NULL CONSTRAINT AddDateDflt DEFAULT GETDATE() WITH VALUES ; 22:03:22 От Пользователь Otus : удаление огранечения ALTER TABLE dbo.doc_exc DROP CONSTRAINT my_constraint ; 22:03:31 От Александр Голиков кому Ведущие вебинара и участники : "интересное" если надо удалить значения из столбца в 100500 записях - переименовать текущий столбец , столбец пустой с предыдущим именем 22:03:47 От Александр Голиков кому Ведущие вебинара и участники : создать пустой с предыдущем именем 22:04:20 От Александр Голиков кому Ведущие вебинара и участники : задача удалить 100 млн записей из столбца 22:05:13 От Пользователь Otus : https://habr.com/ru/post/342838/ 22:13:25 От Александр Голиков кому Ведущие вебинара и участники : свойства 22:13:37 От Александр Голиков кому Ведущие вебинара и участники : или логин там тоже будет 22:17:36 От Sergey Prokopchuk : - 22:17:51 От Александр Голиков кому Ведущие вебинара и участники : Нет вопросов 22:17:59 От Алексей Смирнов : все отлично, вопросов нет 22:18:58 От Алексей Смирнов : до свидания, хороших выходных 22:19:08 От Sergey Prokopchuk : спасибо 22:19:10 От Александр Голиков кому Ведущие вебинара и участники : Спасибо за лекцию.