Получаем все внешние ключи в базе данных

by DenizK 29. октября 2011 15:49

В ходе миграции одного из проектов встала задача - как найти все внешние ключи. Решается запросом

SELECT f.name AS ForeignKey,
OBJECT_NAME(f.parent_object_idAS TableName,
COL_NAME(fc.parent_object_id,
fc.parent_column_idAS ColumnName,
OBJECT_NAME (f.referenced_object_idAS ReferenceTableName,
COL_NAME(fc.referenced_object_id,
fc.referenced_column_idAS ReferenceColumnName
FROM sys.foreign_keys AS f
INNER JOIN sys.foreign_key_columns AS fc
ON f.OBJECT_ID fc.constraint_object_id 

Оценок нет

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags:

SQL Server | одминство

Как определить версию SQL Server

by DenizK 12. сентября 2011 02:52
SELECT @@VERSION

Оценок нет

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags: ,

SQL Server

Принудительно закрываем SQL сессии, которые спят более 1 часа

by DenizK 30. июля 2011 05:50

DECLARE @v_spid INT
DECLARE c_Users CURSOR
   FAST_FORWARD FOR
   SELECT SPID
   FROM master..sysprocesses (NOLOCK)
   WHERE spid>50 
   AND status='sleeping' 
   AND DATEDIFF(mi,last_batch,GETDATE())>=60
   AND spid<>@@spid

OPEN c_Users
FETCH NEXT FROM c_Users INTO @v_spid
WHILE (@@FETCH_STATUS=0)
BEGIN
  PRINT 'KILLing '+CONVERT(VARCHAR,@v_spid)+'...'
  EXEC('KILL '+@v_spid)
  FETCH NEXT FROM c_Users INTO @v_spid
END

CLOSE c_Users
DEALLOCATE c_Users

Оценок нет

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags:

SQL Server | Tips & tricks | одминство

Получаем текст последнего запроса для каждой сессии в SQL Server

by DenizK 30. июля 2011 05:28
SELECT session_idTEXT
FROM 
sys.dm_exec_connections
CROSS APPLY sys.dm_exec_sql_text(most_recent_sql_handleAS ST

Текущий рейтинг: 5.0 (1 голосов)

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags:

SQL Server | Tips & tricks | одминство

Сервис для форматирования SQL кода для вставки в блог

by DenizK 16. января 2011 06:56
Наткнулся на такой полезный сервис www.dpriver.com/pp/sqlformat.htm - очень удобный, рекомендую!

Оценок нет

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags:

SQL Server | Tools

Ежедневный бекап базы данных SQL Express

by DenizK 11. января 2011 15:36

Возникла задача - делать ежедневные бекапы нескольких бд на SQL Express (который не имеет Agent Service для таких задач). Задача решилась путем создания sql файла 

DECLARE @pathName NVARCHAR(512) 

SET @pathName = 'c:\DB_BAK\db_backup_base1_' + Convert(varchar(8), GETDATE(), 112) + '.bak' 

BACKUP DATABASE [atlantisline] TO  DISK = @pathName WITH NOFORMAT, NOINIT,  NAME = N'db_backup', SKIP, NOREWIND, NOUNLOAD,  STATS = 10

SET @pathName = 'c:\DB_BAK\db_backup_base2_' + Convert(varchar(8), GETDATE(), 112) + '.bak' 

BACKUP DATABASE [carnival] TO  DISK = @pathName WITH NOFORMAT, NOINIT,  NAME = N'db_backup', SKIP, NOREWIND, NOUNLOAD,  STATS = 10 

 

и запускающего его батника

sqlcmd -S HOST\SQLEXPRESS -i backup.sql

 

@Echo Off

Set _Date=%date%

If "%_Date%A" LSS "A" (Set _NumTok=1-3) Else (Set _NumTok=2-4)

:: Default Delimiter of TAB and Space are used

For /F "TOKENS=2*" %%A In ('REG QUERY "HKCU\Control Panel\International" /v iDate') Do Set _iDate=%%B

For /F "TOKENS=2*" %%A In ('REG QUERY "HKCU\Control Panel\International" /v sDate') Do Set _sDate=%%B

IF %_iDate%==0 For /F "TOKENS=%_NumTok% DELIMS=%_sDate% " %%B In ("%_Date%") Do Set _fdate=%%D%%B%%C

IF %_iDate%==1 For /F "TOKENS=%_NumTok% DELIMS=%_sDate% " %%B In ("%_Date%") Do Set _fdate=%%D%%C%%B

IF %_iDate%==2 For /F "TOKENS=%_NumTok% DELIMS=%_sDate% " %%B In ("%_Date%") Do Set _fdate=%%B%%C%%D

Set _Today=%_fdate:~4,2%-%_fdate:~6,2%-%_fdate:~0,4%

Echo On

 

"C:\Program Files\7-Zip\7z.exe" a -tzip c:\DB_BAK\db_backup_%_Today%.zip c:\DB_BAK\db_backup_*.bak

del c:\DB_BAK\db_backup_*.bak 

Текущий рейтинг: 5.0 (1 голосов)

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags: ,

SQL Server | одминство

Как восстановить БД с помощь.запроса

by DenizK 7. января 2011 10:40

Возникла задача - из ASP.NET сайта восстановить БД из бекапа с помощью sql запроса. При попытке выполнить 

 RESTORE DATABASE XXX FROM DISC='C:\backup\mybackup.bak' WITH REPLACE  

выбрасывалось исключение Restore of the XXX database from location: C:\Backup\mybackup.bak failed. Error: RESTORE cannot process database 'XXX' because it is in use by this session. It is recommended that the master database be used when performing this operation.

Задача успешно выполнилась с помощью следующего кода 

 

 USE MASTER;  
ALTER DATABASE XXX SET SINGLE_USER WITH ROLLBACK IMMEDIATE;  
RESTORE DATABASE XXX FROM DISK = 'C:\backup\mybackup.bak' WITH REPLACE,RECOVERY;  
ALTER DATABASE XXX SET MULTI_USER WITH ROLLBACK IMMEDIATE;  

Как получить реальный план выполнения запросы в SQL Server?

by DenizK 26. июля 2010 06:59
К примеру - вот так http://sqlserverpedia.com/wiki/Examining_Query_Execution_Plans#Actual_Execution_Plan . В целом сайт http://sqlserverpedia.com/ мне понравился, содержит большую knowledge base по SQL Server

Оценок нет

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags:

SQL Server

Мануал о миграции баз MS SQL Server в Azure

by DenizK 3. июня 2010 00:32
В документе содержится руководство по миграции MS SQL Server -> и best practics по этому вопросу. Скачать можно с http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=45066b7f-a444-4aa8-ae13-88adf5473acd

Оценок нет

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags: , ,

SQL Server | Tips & tricks | Azure

Получаем список активных в данный момент запросов в SQL Server

by DenizK 31. мая 2010 15:02

Получить список можно с помощью запроса

SELECT sqltext.TEXT,
req.session_id,
req.status,
req.command,
req.cpu_time,
req.total_elapsed_time
FROM sys.dm_exec_requests req
CROSS APPLY sys.dm_exec_sql_text(sql_handle) AS sqltext

А уже по полоученным данным "прибить" зависший запрос с помощью

KILL [session_id]

Оценок нет

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags: ,

SQL Server | Tips & tricks

О нас

Это блог компании Инлайн. Мы занимаемся разработкой сайтов, корпоративных порталов и корпоративных информационных систем на основе новейших технологии Microsoft  - ASP.NET, SharePoint и Silverlight. А в этом блоге мы размещаем самые последние новости в области разработке для web.

Облако тегов