SELECT *
INTO [new_BK]
FROM [old_table]
31 Ağustos 2021 Salı
3 Aralık 2020 Perşembe
MSSQL Email Gönderme
DECLARE @body NVARCHAR(MAX)
DECLARE @mSubject VARCHAR(MAX);
DECLARE @date DATETIME;
SET @date = CAST(CONVERT(CHAR(10), GETDATE(), 101) AS DATETIME);
SET @body = '<html><head>
<title>Email Başlık</title>
</head><body>
<table border="1" cellpadding="0" cellspacing="0" width="100%">
<tr style="text-align:left";>
<th>Plaka</th>
<th>İl</th>
<th>İlçe</th>
<th>Adres</th>
</tr>';
SET @body = @body + CAST(
(
SELECT
'td/@align' = 'left',
td = T.Plaka,
'',
'td/@align' = 'left',
td = T.IlAdi,
'',
'td/@align' = 'left',
td = T.IlceAdi,
'',
'td/@align' = 'left',
td = T.Adres,
''
From (
SELECT * FROM Adres
) T
FOR XML PATH('tr'), ELEMENTS
)
AS NVARCHAR(MAX))
SET @body = @body + '</table></body></html>';
SET @mSubject = 'Falcon - ' + CONVERT(CHAR(10), DATEADD(dd, -1, @date), 104) + ' Konumu Çekilemeyen Adresler';
EXEC msdb.dbo.sp_send_dbmail
@recipients = N'akifyanbak@mail.com',
@copy_recipients =N'cc@mail.com',
@body = @body,
@body_format = 'HTML',
@subject = @mSubject,
@profile_name = 'sql_email_profile';
21 Kasım 2020 Cumartesi
31 Ağustos 2020 Pazartesi
Enlem boylam uzaklık hesaplama
Since you're using SQL Server 2008, you have the geography data type available, which is designed for exactly this kind of data:
DECLARE @source geography = 'POINT(0 51.5)'
DECLARE @target geography = 'POINT(-3 56)'
SELECT @source.STDistance(@target)
Gives
----------------------
538404.100197555
(1 row(s) affected)
Telling us it is about 538 km from (near) London to (near) Edinburgh.
Naturally there will be an amount of learning to do first, but once you know it it's far far easier than implementing your own Haversine calculation; plus you get a LOT of functionality.
If you want to retain your existing data structure, you can still use STDistance, by constructing suitable geography instances using the Point method:
DECLARE @orig_lat DECIMAL(12, 9)
DECLARE @orig_lng DECIMAL(12, 9)
SET @orig_lat=53.381538 set @orig_lng=-1.463526
DECLARE @orig geography = geography::Point(@orig_lat, @orig_lng, 4326);
SELECT *,
@orig.STDistance(geography::Point(dest.Latitude, dest.Longitude, 4326))
AS distance
--INTO #includeDistances
FROM #orig dest
14 Mayıs 2020 Perşembe
Veritabanı ortamları oluşturma
INSERT @environments(Environment) VALUES ('Test'),('Dev'),('DevAkif'),('DevGuest');
DECLARE @environment VARCHAR(255);
DECLARE @prefix VARCHAR(255)='DB_Name_';
DECLARE @path VARCHAR(255) =N'C:\MSSQL\Backup\Yesterday\Backup.bak';
DECLARE @backup_dbname VARCHAR(255) = 'DB_Name';
DECLARE @backup_dbname_log VARCHAR(255) = 'DB_Name_log';
DECLARE @data_path VARCHAR(255) ='C:\MSSQL\DATA\';
DECLARE @mdf VARCHAR(4)= '.mdf';
DECLARE @log VARCHAR(4)='_log';
DECLARE @ldf VARCHAR(4)= '.ldf';
DECLARE CreateEnvironmentsCursor CURSOR FOR
SELECT Environment FROM @environments;
OPEN CreateEnvironmentsCursor
FETCH NEXT FROM CreateEnvironmentsCursor INTO @environment ;
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT @environment+ ' yedek alınıyor...';
DECLARE @environment_db_name VARCHAR(255) =@prefix+@environment;
DECLARE @environment_logical_name VARCHAR(255) = @environment_db_name;
DECLARE @environment_mdf_path VARCHAR(255) = @data_path +@environment_db_name+ @mdf;
DECLARE @environment_logical_log_name VARCHAR(255) = @environment_db_name + @log;
DECLARE @environment_ldf_path VARCHAR(255) = @data_path +@environment_db_name+@log+@ldf;
IF EXISTS (SELECT name FROM sys.databases WHERE name = @environment_db_name)
BEGIN
EXEC msdb.dbo.sp_delete_database_backuphistory @database_name = @environment_db_name
USE [master]
EXEC('DROP DATABASE '+@environment_db_name)
END
RESTORE FILELISTONLY FROM DISK=@path
RESTORE DATABASE @environment_db_name
FROM DISK = @path
WITH
MOVE @backup_dbname TO @environment_mdf_path,
MOVE @backup_dbname_log TO @environment_ldf_path
EXEC('ALTER DATABASE '+@environment_db_name+' MODIFY FILE (NAME=['+@backup_dbname+'], NEWNAME='+@environment_logical_name+')');
EXEC('ALTER DATABASE '+@environment_db_name+' MODIFY FILE (NAME=['+@backup_dbname_log+'], NEWNAME='+@environment_logical_log_name+')');
EXEC('USE '+@environment_db_name +'; '
+' ALTER DATABASE '+@environment_logical_name+' SET RECOVERY SIMPLE WITH NO_WAIT;'
+'DBCC SHRINKFILE('+@environment_logical_log_name+') ;'
+'ALTER DATABASE '+@environment_logical_name+' SET RECOVERY FULL WITH NO_WAIT;');
IF USER_ID(@environment_db_name) IS NULL
BEGIN
CREATE USER [TestUser] FOR LOGIN [TestUser] -- Önceden oluşturulan user
END
ALTER ROLE [db_owner] ADD MEMBER [TestUser]
FETCH NEXT FROM CreateEnvironmentsCursor INTO @environment
END
CLOSE CreateEnvironmentsCursor
DEALLOCATE CreateEnvironmentsCursor
13 Mayıs 2020 Çarşamba
SINGLE USER modundan veritabanını MULTI USER olarak ayarlama
use master
GO
select
d.name,
d.dbid,
spid,
login_time,
nt_domain,
nt_username,
loginame
from sysprocesses p
inner join sysdatabases d
on p.dbid = d.dbid
where d.name = 'dbname'
GO
kill 56 --=> kill the number in spid field
GO
exec sp_dboption 'dbname', 'single user', 'FALSE'
GO
https://stackoverflow.com/questions/14652923/set-database-from-single-user-mode-to-multi-user
Is there any way to get a list of open/allocated cursors in SQL server?
GO
select s.session_id, s.host_name, s.program_name, s.client_interface_name, s.login_name
, c.cursor_id, c.properties, c.creation_time, c.is_open, con.text,
l.resource_type, d.name, l.request_type, l.request_Status, l.request_reference_count, l.request_lifetime, l.request_owner_type
from sys.dm_exec_cursors(0) c
left outer join (select * from sys.dm_exec_connections c cross apply sys.dm_exec_sql_text(c.most_recent_sql_handle) mr) con on c.session_id = con.session_id
left outer join sys.dm_exec_sessions s on s.session_id = c.session_id
left outer join sys.dm_tran_locks l on l.request_session_id = c.session_id
left outer join sys.databases d on d.database_id = l.resource_database_id
Açık kalan Cursorları listeleme
Kaynak: https://stackoverflow.com/questions/265605/is-there-any-way-to-get-a-list-of-open-allocated-cursors-in-sql-server
16 Mayıs 2018 Çarşamba
SQL'de Tüm Tabloların Geçerli "Identity Seed" değerini bulma
TABLE_NAME AS [Table],
IDENT_CURRENT(TABLE_SCHEMA + '.' + TABLE_NAME) AS Id,
IDENT_SEED(TABLE_SCHEMA + '.' + TABLE_NAME) AS Seed,
IDENT_INCR(TABLE_SCHEMA + '.' + TABLE_NAME) AS Increment
FROM
INFORMATION_SCHEMA.TABLES
WHERE
OBJECTPROPERTY(OBJECT_ID(TABLE_SCHEMA + '.' + TABLE_NAME), 'TableHasIdentity') = 1
AND
TABLE_TYPE = 'BASE TABLE'
order by Seed
23 Kasım 2017 Perşembe
Sql türkçe karakterli kolonda arama yapma
CaseSensitivity
CI specifies case-insensitive (Büyük / küçük harf duyarlılığı belirtmez), CS specifies case-sensitive (Büyük / küçük harf duyarlığını belirtir.)
AccentSensitivity
AI specifies accent-insensitive (aksan-duyarsızlaştırmayı belirtir), AS specifies accent-sensitive(aksanlı duyarlılığı belirtir).
10 Ekim 2017 Salı
MSSQL max index uzunluğu
24 Nisan 2017 Pazartesi
Sql try catch - uzun sorgu için
BEGIN TRANSACTION
--Buraya sorgular yazılır
--Bi sıkıntı yoksa commit
COMMIT TRANSACTION
--sıkıtnı olursa rolback
--ROLLBACK TRANSACTION
END TRY
BEGIN CATCH
--Catch düştüyse rollback yapılır
ROLLBACK TRANSACTION
END CATCH
23 Nisan 2017 Pazar
Veritabanı adı değiştme
ALTER DATABASE [old_name] SET SINGLE_USER WITH ROLLBACK IMMEDIATE GO ALTER DATABASE [old_name] MODIFY NAME = [new_name] GO ALTER DATABASE [new_name] SET MULTI_USER GO
20 Aralık 2016 Salı
18 Ekim 2016 Salı
31 Ağustos 2016 Çarşamba
MSSQL Backup
RESTORE DATABASE Db_Name
FROM DISK = N'C:\Db\Backup.bak'
WITH
MOVE 'backup_dbname' TO 'C:\MSSQL\DATA\Db_Name.mdf',
MOVE 'backup_dbname_log' TO 'C:\MSSQL\DATA\Db_Name_log.ldf'
Go
30 Ağustos 2016 Salı
MSSQL Ortalama veri ekleme hızı
SET @count=(select count(0) from Table_Name)
DECLARE @start datetime;
DECLARE @end datetime;
DECLARE @datediff int;
Set @end=(select top 1 CreatedDate from Table_Name order by CreatedDate desc)
SET @start=(select top 1 CreatedDate from Table_Name order by CreatedDate )
SET @datediff=( select DATEDIFF(second,@start,@end) AS DIFFDATE)
print ltrim(str(@datediff))+' saniyede toplam '+ltrim(str(@count))+' veri eklendi.';
print 'Ortalama '+ltrim(str(@count/@datediff))+' veri/saniye';
20 Ağustos 2016 Cumartesi
Tarihe göe günlük kayıt sayısı
10 Ağustos 2016 Çarşamba
Mssql Function'dan dönen tablonun kolon sayısını alma
7 Nisan 2016 Perşembe
sqlcmd komutlar
Sqlcmd [-U login id] [-P password] [-S server] [-H hostname] [-E trusted connection] [-d use database name] [-l login timeout] [-N encrypt connection] [-C trust the server certificate] [-t query timeout] [-h headers] [-s colseparator] [-w screen width] [-a packetsize] [-e echo input] [-I Enable Quoted Identifiers] [-c cmdend] [-L[c] list servers[clean output]] [-q "cmdline query"] [-Q "cmdline query" and exit] [-m errorlevel] [-V severitylevel] [-W remove trailing spaces] [-u unicode output] [-r[0|1] msgs to stderr] [-i inputfile] [-o outputfile] [-f <codepage> | i:<codepage>[,o:<codepage>]] [-k[1|2] remove[replace] control characters] [-y variable length type display width] [-Y fixed length type display width] [-p[1] print statistics[colon format]] [-R use client regional setting] [-b On error batch abort] [-v var = "value"...] [-X[1] disable commands[and exit with warning]] [-? show syntax summary]
https://technet.microsoft.com/tr-tr/library/ms165702(v=sql.105).aspx
6 Mart 2016 Pazar
MS SQL - While Döngüsü
DECLARE @cnt INT = 0;
WHILE @cnt < cnt_total
BEGIN
{...statements...}
SET @cnt = @cnt + 1;
END;
---------
DECLARE @cnt INT = 11;
WHILE @cnt < 10000
BEGIN
INSERT INTO [dbo].[Chat]
([Name]
,[Content]
,[Lock]
,[CreatedDate]
,[ModifiedDate]
,[State]
,[Archive]
,[CreatedBy]
,[ModifiedBy]
,[Summary])
VALUES
('Sohbet '+STR(@cnt)
,'İçerik'+STR(@cnt)
,0
,Getdate()
,Getdate()
,1
,0
,'admin'
,'admin'
,'Özet' +STR(@cnt))
SET @cnt = @cnt + 1;
END;
GO
.net 6 mapget kullanımı
app.UseEndpoints(endpoints => { endpoints.MapGet("/", async context => { var response = JsonConvert.Seriali...
-
XAMPP Apache MySQL PHP 5 PHP 4 1.8.3 2.4.9 5.6.16 5.5.11 1.8.2 2.4.9 5.5.36 5.4.27 1.8.1 2.4.3 5.5.27 5.4.7 1...
-
SELECT * INTO [new_BK] FROM [old_table]
-
Komut ekranına aşagıdaki komutları yazarak windows service işlemlerini gerçekleştirebiliriz. Not : Komut ekranı (Başlat -> Çalıştır -...
