블로그 이미지
SQL Server VS. 석이 minsouk@hotmail.com MSSQL 쿼리성능 관련해 궁금한 사항이 있다면 언제나 누구나 TeamViewer + Line (네이버 japan 메신저) 에 minsouk1 추가 후 연락주세요~ 010-9967-0955 보미아빠

카테고리

보미아빠, 석이 (383)
밥벌이 (16)
싸이클 (1)
일상 (1)
Total121,299
Today67
Yesterday92

달력

« » 2016.04
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30

공지사항

mysql odbc

분류없음 / 2016.04.28 15:57

드라이버  32, 64 둘 다 깔고

 

USE [master]
GO

EXEC master.dbo.sp_addlinkedserver @server = N'BOA', @srvproduct=N'MySQL', @provider=N'MSDASQL', @datasrc=N'BOA', @provstr=N'BOA', @catalog=N'dbname'
EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'BOA',@useself=N'False',@locallogin=NULL,@rmtuser=N'',@rmtpassword=''

GO

 

 

 

 


alter proc usp_loader
(
  @sourceFolderName nvarchar(4000)
, @filename nvarchar(4000)
)
as

if object_id ('tempdb..##tMdsApiResultsTemp') is not null
drop table ##tMdsApiResultsTemp

create table ##tMdsApiResultsTemp
(cIp varchar(100)
,cApi varchar(100)
,cVersion varchar(100)
,cLastAccess varchar(100)
)


declare @sql nvarchar(4000)
=
'
BULK INSERT ##tMdsApiResultsTemp
FROM '''+@sourceFolderName+@fileName+'''
WITH
(
FIELDTERMINATOR = ''\t'',
ROWTERMINATOR = ''0x0a'',
TABLOCK
)
'

 


print (@sql)
exec (@sql)


insert into tMdsApiResults (cFilename, cIp, cApiComponent, cApiPlatform, cVersion, cLastAccess)
select
 @filename
 , cIp
 , substring(cApi, 1, CHARINDEX(':', cApi)-1)
 , substring(cApi, CHARINDEX(':', cApi)+1, len(cApi))
 , cVersion
 , cLastAccess
from ##tMdsApiResultsTemp
go

 

 

저작자 표시 비영리 변경 금지
Posted by 보미아빠

dynamic pivot

분류없음 / 2016.04.27 18:09


과거에는 아래 방법으로 많이 했는데, 요즘은 CLR 로 하면 더 멋지게 가능할 듯 한데.....

언제 함 만들어 봐야겠다.....예전에 내가 만든건 어디 있는지도 모르겠네...쩝...




원문 : http://www.mssqltips.com/sqlservertip/2783/script-to-create-dynamic-pivot-queries-in-sql-server/

http://ceusee.tistory.com/188

 

 

동적으로 PIVOT을 만들 수 있는 방법입니다.

아직도 case 문이 익숙하긴 하지만, 가끔은 오히려 더 복잡해지는 case 문 때문에 PIVOT을 사용해야 한다고 느껴질 때가 있습니다.

 

아직 PIVOT 익숙하지는 않은데 하다보니 컬럼 고정이 되서 불편한 점이 있는데 이 방법으로 사용하면 좋을 것 같네요.

 

PIVOT 은 행 형태의 반환을 열로 만들어 주는 것입니다.

 

아래로 테스트할 데이터를 생성 합니다.


CREATE TABLE dbo.Products
(
  ProductID INT PRIMARY KEY,
  Name      NVARCHAR(255) NOT NULL UNIQUE
  /* other columns */
);


INSERT dbo.Products VALUES
(1, N'foo'),
(2, N'bar'),
(3, N'kin');


CREATE TABLE dbo.OrderDetails
(
  OrderID INT,
  ProductID INT NOT NULL
    FOREIGN KEY REFERENCES dbo.Products(ProductID),
  Quantity INT
  /* other columns */
);


INSERT dbo.OrderDetails VALUES
(1, 1, 1),
(1, 2, 2),
(2, 1, 1),
(3, 3, 1);

 

SELECT p.Name, Quantity = SUM(o.Quantity)
  FROM dbo.Products AS p
  INNER JOIN dbo.OrderDetails AS o
  ON p.ProductID = o.ProductID
  GROUP BY p.Name;

 

결과는 아래 처럼 행으로 나 옵니다.  그러나 열로 표시하고 싶어요. 하면 PIVOT 처리 합니다.

 

 

 

SELECT p.[foo], p.[bar], p.[kin]
FROM
(
  SELECT p.Name, o.Quantity
   FROM dbo.Products AS p
   INNER JOIN dbo.OrderDetails AS o
   ON p.ProductID = o.ProductID
) AS j
PIVOT
(
  SUM(Quantity) FOR Name IN ([foo],[bar],[kin])
) AS p;

 

 

원하는 결과가 나왔습니다. ~

 

 

다른 데이터를 추가 해 보죠.

INSERT dbo.Products SELECT 4, N'blat';
INSERT dbo.OrderDetails SELECT 4,4,5;

 

그리고 나서 다시 윗 쿼리를 실행 해 보면 결과는 동일하게 3개의 데이터의 집계만 나타납니다.

당연한 결과 입니다. 지금 추가된 blat는 보이지 않습니다. PIVOT는 집계해서 보여줄 컬럼을 명시해야 하기 때문입니다.   쿼리를 그럼 고쳐야 하는데 좀 더 쉽게 동적으로 할 수 있게 아래는 도와 줍니다.

 

DECLARE @columns NVARCHAR(MAX), @sql NVARCHAR(MAX);


SET @columns = N'';

SELECT @columns += N', p.' + QUOTENAME(Name)   -- += 는 컬럼을 합쳐서 한 문자로 만들어 주죠.
FROM (SELECT p.Name FROM dbo.Products AS p
  INNER JOIN dbo.OrderDetails AS o
  ON p.ProductID = o.ProductID
 GROUP BY p.Name) AS x;

print @columns


SET @sql = N'
 SELECT ' + STUFF(@columns, 1, 2, '') + '
 FROM
 (
   SELECT p.Name, o.Quantity
    FROM dbo.Products AS p
    INNER JOIN dbo.OrderDetails AS o
    ON p.ProductID = o.ProductID
 ) AS j
 PIVOT
 (
   SUM(Quantity) FOR Name IN ('
   + STUFF(REPLACE(@columns, ', p.[', ',['), 1, 1, '')
   + ')
 ) AS p;';

PRINT @sql;
EXEC sp_executesql @sql;

 

-- @sql의 문은 컬럼을 만들어서 PIVOT 를 생성해 줍니다.

 

/*결과)
 SELECT p.[foo], p.[bar], p.[kin], p.[blat]
 FROM
 (
   SELECT p.Name, o.Quantity
    FROM dbo.Products AS p
    INNER JOIN dbo.OrderDetails AS o
    ON p.ProductID = o.ProductID
 ) AS j
 PIVOT
 (
   SUM(Quantity) FOR Name IN ([foo],[bar],[kin],[blat])
 ) AS p;

*/

 

원하는 결과가 도출.

 

저작자 표시 비영리 변경 금지
Posted by 보미아빠

edition upgrade

분류없음 / 2016.04.20 17:21

Command prompt installation is supported in the following scenarios:

Upgrading from one SQL Server edition to another edition of SQL Server.

SQL Server Setup Control

/ACTION

Required

Required to indicate the installation workflow.

Supported values:

Upgrade

EditionUpgrade

The value EditionUpgrade is used to upgrade an existing edition of SQL Server 2014 to a different edition. For more information about the supported version and edition upgrades, see Supported Version and Edition Upgrades.




https://msdn.microsoft.com/en-us/library/ms144259(v=sql.120).aspx




http://optimizer.tistory.com/entry/%ED%8F%89%EA%B0%80-%EA%B8%B0%EA%B0%84%EC%9D%B4-%EB%A7%8C%EB%A3%8C%EB%90%9C-SQL-Server-%EC%97%85%EA%B7%B8%EB%A0%88%EC%9D%B4%EB%93%9C-%ED%95%98%EA%B8%B0





setup.exe /q /ACTION=editionupgrade /InstanceName=MSSQLSERVER /PID=<appropriatePid>/SkipRules= Engine_SqlEngineHealthCheck



평가기간이 끝난 경우 /SkipRules= Engine_SqlEngineHealthCheck 추가 




https://blog.brankovucinec.com/2014/07/23/upgrade-from-sql-server-2014-express-to-standard-edition/

저작자 표시 비영리 변경 금지
Posted by 보미아빠

최근에 달린 댓글

최근에 받은 트랙백

글 보관함

티스토리 툴바