Database/MS SQL Server2014.07.15 14:11




SQL Server를 무료로 사용할 때 참고해야할 제약기능과 기타 등등의 자료입니다.

SQL Server Express는 무료인가?

http://microsoft.softinfo.co.kr/bbs/board.php?bo_table=microsoftqa&wr_id=273

 

MSSQL 2005 Express 에디션의 제약 조건

http://ncanis.tistory.com/175

 

SQL Server 2012 에 포함된 LocalDB 기능 소개

http://www.sysnet.pe.kr/Default.aspx?mode=2&sub=0&detail=1&wid=1258

 

 

 

신고




Posted by 금붕어70
Database/MS SQL Server2014.06.23 10:56




트랜잭션 로그 사이즈 줄이기

 

USE [CasDB] 
GO 
ALTER DATABASE [CasDB] SET RECOVERY SIMPLE WITH NO_WAIT;
DBCC SHRINKFILE(CasDB_LOG, 1);
ALTER DATABASE [CasDB] SET RECOVERY FULL WITH NO_WAIT;
GO 
신고




Posted by 금붕어70
Database/MS SQL Server2014.05.16 09:04




SQL Server 에서 Tree 구조형 자료의 처리에 대해서 정리 합니다.

1. Tree 구조로 가져오는 기본형
2. 보모의 이름도 같이 가져오는 구조
3. 속성 정보를 사용한 추가 정보 설정 방법
4. 지정된 노드의 모든 부모들을 가져오는 방법
5. 지정된 노드의 최상위 보모를 가져오는 방법

 

USE tempdb;
GO

IF OBJECT_ID('dbo.tree') IS NOT NULL DROP TABLE dbo.tree
GO

CREATE TABLE dbo.tree
(
    ID INT PRIMARY KEY,
    name VARCHAR(32),
    ParentID INT FOREIGN KEY REFERENCES dbo.tree(ID)
);

INSERT dbo.tree 
SELECT 1, 'grandpa', NULL
UNION ALL SELECT 2, 'dad', 1
UNION ALL SELECT 3, 'me', 2
UNION ALL SELECT 4, 'mom', 1
UNION ALL SELECT 5, 'grandma', NULL;
GO

-- Tree 기본형
WITH cte AS
(
    -- anchor:
    SELECT ID, name, ParentID, [level] = 0
    FROM dbo.tree WHERE ParentID IS NULL
    UNION ALL
    -- recursive:
    SELECT t.ID, t.name, t.ParentID, [level] = cte.[level] + 1
    FROM cte INNER JOIN dbo.tree AS t
    ON t.ParentID = cte.ID
)
SELECT ID, name, ParentID, [level] 
FROM cte
ORDER BY [level]
OPTION (MAXRECURSION 32);
GO

-- Tree : 부모 이름도 가져오기...
WITH cte AS
(
    -- anchor:
    SELECT ID, name, ParentID, name parentName, [level] = 0
    FROM dbo.tree WHERE ParentID IS NULL
    UNION ALL
    -- recursive:
    SELECT t.ID, t.name, t.ParentID, cte.name parentName, [level] = cte.[level] + 1
    FROM cte INNER JOIN dbo.tree AS t
    ON t.ParentID = cte.ID
)
SELECT ID, name, ParentID, parentName, [level] 
FROM cte
ORDER BY [level]
OPTION (MAXRECURSION 32);
GO

-- Tree : 추가 정보 설정
WITH cte AS
(
    -- anchor:
    SELECT ID, name, ParentID, [level] = 0
    FROM dbo.tree WHERE ParentID IS NULL
    UNION ALL
    -- recursive:
    SELECT t.ID, t.name, t.ParentID, [level] = cte.[level] + 1
    FROM cte 
	INNER JOIN dbo.tree AS t ON t.ParentID = cte.ID
)
SELECT distinct cteA.ID, cteA.name, cteA.ParentID, cteA.[level], CASE WHEN cteB.ParentID is not null THEN 'Folder' ELSE 'Node' END
FROM cte cteA
LEFT JOIN cte as cteB ON cteA.ID=cteB.ParentID
ORDER BY [level]
OPTION (MAXRECURSION 32)
GO


-- Tree : 지정된 노드에 대한  부모들의 정보를 가져오기
WITH cte AS
(
    -- anchor:
    SELECT ID, name, ParentID,  [level] = 0
    FROM dbo.tree WHERE ID = 3
    UNION ALL
    -- recursive:
    SELECT t.ID, t.name, t.ParentID, [level] = cte.[level] + 1
    FROM cte INNER JOIN dbo.tree AS t
    ON t.ID = cte.ParentID
)
SELECT ID, name, ParentID, [level] 
FROM cte
ORDER BY [level]
OPTION (MAXRECURSION 32);
GO

-- Tree : 지정된 노드에 대한 최상위 부모의 정보를 가져오기
WITH cte AS
(
    -- anchor:
    SELECT ID, name, ParentID,  [level] = 0
    FROM dbo.tree WHERE ID = 3
    UNION ALL
    -- recursive:
    SELECT t.ID, t.name, t.ParentID, [level] = cte.[level] + 1
    FROM cte INNER JOIN dbo.tree AS t
    ON t.ID = cte.ParentID
)
SELECT cteA.ID, cteA.name, cteA.ParentID, cteA.[level] 
FROM cte cteA
WHERE cteA.level = (SELECT MAX(level) from cte)
OPTION (MAXRECURSION 32);
GO
신고




Posted by 금붕어70




Visual Studio 에서 보고서 편집을 하다가 "보고서 데이터" 창이 없어 졌을 때 찾기가 무지 힘듭니다.

이 때, 단축키를 사용하면 됩니다.

보고서를 선택하고 "Ctrl+Alt+D" 를 클릭하면 보고서 데이터 창이 나타납니다.

 

신고




Posted by 금붕어70




SSRS 관련 개발자 가이드 입니다.(http://msdn.microsoft.com/ko-kr/library/bb522713.aspx)
이 사이트에서 눈여겨 봐야할 부분은 ReportService2010 (http://msdn.microsoft.com/ko-kr/library/reportservice2010.aspx) 입니다.

응용 프로그램에 Reporting Services 통합

Reporting Services를 사용하여 사용자 지정 응용 프로그램에 보고 기능을 통합하는 방법을 개략적으로 설명합니다. 보고서 서버에 액세스하기 위해 언제 직접 URL 액세스를 사용하고 언제 웹 서비스를 사용하는지를 설명합니다.

보고서 서버 웹 서비스

보고서 서버 웹 서비스는 보고서 서버의 전체 기능에 대한 액세스를 제공합니다. 웹 서비스는 HTTP를 통한 SOAP을 사용하며 클라이언트 프로그램과 보고서 서버 간의 통신 인터페이스 역할을 하도록 디자인되었습니다. 웹 서비스 및 해당 메서드는 보고서 서버의 기능을 표시하며, 작업자는 이를 사용하여 관리부터 실행까지 보고서 수명 주기 중 임의의 부분에 대해 사용자 지정 도구를 만들 수 있습니다.

URL 액세스(SSRS)

Reporting Services는 보고서 탐색 및 보기를 위한 빠르고 쉬운 액세스 지점으로 사용할 수 있는 전체 URL 기반 요청 집합을 지원합니다. 보고서 서버 웹 서비스와 함께 이 기술을 사용하여 전체 보고 솔루션을 사용자 지정 비즈니스 응용 프로그램에 통합할 수 있습니다. URL 액세스는 보고서를 웹 포털의 일부로 통합하거나 웹 브라우저에서 보고서를 볼 때 특히 유용합니다.

Reporting Services 확장 프로그램

확장성을 위해 Reporting Services의 모듈식 아키텍처를 디자인했습니다. 다양한 Reporting Services 구성 요소에서 사용되는 확장 프로그램을 쉽게 개발, 설치 및 관리할 수 있도록 관리 코드 API를 사용할 수 있습니다. Microsoft .NET Framework를 사용하여 어셈블리를 만들 수 있으며 끊임없이 변하는 업무상의 요구에 맞게 새로운 Reporting Services 렌더링, 보안, 배달 및 데이터 처리 기능을 추가할 수도 있습니다.

사용자 지정 보고서 항목

 사용자 지정 보고서 항목을 만들어 RDL에 기능을 추가하거나 기존 컨트롤의 기능을 확장하는 방법을 설명합니다.

보고서에서 사용자 지정 어셈블리 사용

보고서 정의 내에 코드 참조를 포함시켜 보고서에 사용자 지정 어셈블리를 사용하는 방법을 설명합니다.

Reporting Services WMI 공급자 액세스

Reporting Services WMI 공급자를 사용하여 보고서 서버 배포를 관리하는 방법을 설명합니다.

 

신고




Posted by 금붕어70




Microsoft SQL Server Reporting Services(SSRS)를 익히기 위해서 MS에서 제공하는 샘플 데이터베이스(Adventureworks2012)와 샘플 보고서입니다.

* 샘플 데이터베이스: http://msftdbprodsamples.codeplex.com/releases/view/55330

* AdventureWorks 2012 SSRS Samples: http://advworks2012sssrs.codeplex.com/

* 설치 방법

  1. Download the AdventureWorks2012 Data File .
  2. From the License Agreement, click I Agree.

  3. From File Download, click Save and browse to a location on your local server.

  4. From SQL Server Management Studio, execute the following code:

    Case-insensitive Database

    CREATE DATABASE AdventureWorks2012 
    ON (FILENAME = '{drive}:\{file path}\AdventureWorks2012_Data.mdf') 
    FOR ATTACH_REBUILD_LOG;
    

    Case-sensitive Database

     
    CREATE DATABASE AdventureWorks2012_CS 
    ON (FILENAME = '{drive}:\{file path}\AdventureWorks2012_CS_Data.mdf') 
    FOR ATTACH_REBUILD_LOG; 
    

     

신고




Posted by 금붕어70
TAG SSRS




Wise Owl 이라는 온라인 교육 사이트의 SSRS(Microsoft SQL Server Reporting Service) 유튜브 교육 모음입니다. 각 단계별로 잘 정리되어 있습니다.

 

1. Getting started with a new report project

 

2. Data Sources and Datasets


 

3. Working with tables


 

4. Keeping column headings visible on each page


 

5. Controlling the number of rows on a page


 

6. Grouping in tables


 

7. Creating calculated fields


 

8. Conditional formatting


 

9. Indicators


 

10. Gauges

 

11. Basic parameters

 

12. Drop down list parameters

 

13. Null values in parameters


 

14. Cascading parameters

 

15. Matrices

 

16. Lists

 

17. Linked reports

 

18. Charts

 

19. Subreports

 

20. Basic Maps

 

21. Pivot Table / Dynamic Matrix

 

22. Document Maps


 

신고




Posted by 금붕어70
TAG SSRS




MS SQL Server의 Reports Services를 사용할려고 하다 보면 가장 처음 만나는 문제가 rsAccessDenied 문제이다.

서비스가 기동된 서비스 계정과 접근할려고 하는 사용자의 권한에 차이가 있어서 발생하는 문제인 듯 하다.

구글링을 해보면 이 문제를 해결하기 위해 제시하는 방법은 다음과 같다.

1. Internet Explorer를 "관리자 권한을 실행" 방식으로 실행한다.

2. http://localhost:80/Reports를 주소에 입력하고 주소를 연다.

이것이 일반적으로 제시하는 방법이고... 해봐도 잘안되는 듯...

그래서 제가 직접 실행한 방법은 다음과 같습니다.

1. UAC를 끄기(이것을 적용하기 위해서는 컴퓨터를 Reboot 해야 합니다.)

2. Reporting Services Configuration Manager에서 "서비스 계정" 탭에서 보고서 서버 계정을 서비스를 기동시킨 같은 계정으로 변경합니다. 기본적으로 NT Service 가상 계정이므로 이것을 등록합니다.(NT SERVICE\ReportServer) => 가상 계정 입력 후 암호를 입력하지 않습니다.

3. 보고서 관리자 URL에서 "고급" 버튼을 클릭하고 "추가" 버튼을 클릭하여 호스트 헤드 이름에 "localhost"를 입력합니다.

4. 이렇게 하여 http://localhost:80/Reports 창을 띄우면 다음과 같음 화면을 볼 수 있습니다.

 

신고




Posted by 금붕어70