반응형

sql-server 65

T-SQL에서 데이터베이스 이름에 변수를 사용하는 방법은 무엇입니까?

T-SQL에서 데이터베이스 이름에 변수를 사용하는 방법은 무엇입니까? 스크립트의 여러 위치에서 데이터베이스 이름을 사용하고 있으며, 데이터베이스 이름을 빠르게 변경할 수 있기를 원하므로 다음과 같은 것을 찾고 있습니다. DECLARE @DBNAME VARCHAR(50) SET @DBNAME = 'TEST' CREATE DATABASE @DBNAME GO ALTER DATABASE @DBNAME SET COMPATIBILITY_LEVEL = 90 GO ALTER DATABASE @DBNAME SET RECOVERY SIMPLE GO 하지만 효과가 없습니다.그렇다면 이 코드를 쓰는 올바른 방법은 무엇일까요?{SERVERNAME} 자리 표시자를 사용하여 전체 스크립트를 템플릿 문자열에 넣습니다.그런 다음 다음..

source 2023.05.07

INER JOIN 상태에서 'OR'를 사용하는 것이 좋지 않은 생각입니까?

INER JOIN 상태에서 'OR'를 사용하는 것이 좋지 않은 생각입니까? 매우 느린 쿼리의 속도를 개선하기 위해(각각 최대 50,000개의 행만 있는 두 개의 테이블에서 몇 분 동안, SQL Server 2008에서) 문제를 다음과 같이 좁혔습니다.OR내 내면의 결합에서, 예를 들면: SELECT mt.ID, mt.ParentID, ot.MasterID FROM dbo.MainTable AS mt INNER JOIN dbo.OtherTable AS ot ON ot.ParentID = mt.ID OR ot.ID = mt.ParentID 나는 이것을 (내가 바라는 것은) 동등한 왼쪽 조인 쌍으로 변경했고, 여기에 표시됩니다. SELECT mt.ID, mt.ParentID, CASE WHEN ot1.Mast..

source 2023.05.07

Dapper.NET 및 저장된 proc(여러 결과 세트 포함)

Dapper.NET 및 저장된 proc(여러 결과 세트 포함) 대퍼를 사용할 수 있는 방법이 있습니까?여러 결과 세트를 반환하는 저장된 프로시저가 있는 NET? 이 경우 첫 번째 결과 집합은 단일 열이 있는 단일 행입니다.0그러면 호출이 성공적으로 완료되고 두 번째 결과 집합에는 해당 데이터의 실제 행/테이블이 포함됩니다. (그리고 0이 아닐 경우 오류가 발생하여 두 번째 결과 집합이 제공되지 않습니다.) 대퍼와 함께 이 일을 처리할 수 있는 기회.NET? 지금까지, 나는 오직 그 싱글을 돌려받을 뿐입니다.0그 이상은 아닙니다. 업데이트: 좋아요. 결과 집합 2가 단일 엔터티인 한 작동합니다. Dapper.SqlMapper.GridReader reader = _conn.QueryMultiple("spro..

source 2023.05.07

백분율 값을 유지하기 위한 적절한 데이터 유형?

백분율 값을 유지하기 위한 적절한 데이터 유형? 0.00% ~ 100.00% 범위의 백분율 값을 유지하는 데 가장 적합한 데이터 유형은 무엇입니까?백분율에 소수점 두 자리가 있다고 가정하면 사용하는 데이터 유형은 백분율을 저장하는 방법에 따라 달라집니다. 그들의 분수 등가물(예: 100.00%가 1.0000으로 저장됨)을 저장할 경우, 나는 데이터를 다음과 같이 저장할 것입니다.decimal(5,4)데이터 유형(aCHECK값이 1.0000(상한)을 초과하지 않고 0(바닥) 아래로 떨어지지 않도록 하는 제약 조건. 얼굴 값을 저장하려면(예: 100.00%가 100.00으로 저장됨) 다음을 사용해야 합니다.decimal(5,2)적절한CHECK속박 좋은 열 이름과 결합하여 다른 개발자에게 데이터가 무엇인지, ..

source 2023.05.07

SQL Server: 개체 이름의 최대 문자 길이

SQL Server: 개체 이름의 최대 문자 길이 SQL Server 2008에서 개체 이름(예: 제약 조건, 열)의 최대 문자 길이는 얼마입니까? 128자.데이터 유형의 최대 길이입니다(nvarchar(128)).예, 이름이 116자 이내인 임시 테이블을 제외하고 128자입니다.이것은 여기에 완벽하게 설명되어 있습니다. 또한 이전 블로그 게시물에 포함된 다음 스크립트를 사용하여 쉽게 확인할 수 있습니다. DECLARE @i NVARCHAR(800) SELECT @i = REPLICATE('A', 116) SELECT @i = 'CREATE TABLE #'+@i+'(i int)' PRINT @i EXEC(@i) 이 스크립트를 사용하여 추가 정보를 확인할 수도 있습니다. EXEC sp_server_info..

source 2023.05.02

SQL Server에서 varchar(MAX) 대 TEXT 사용

SQL Server에서 varchar(MAX) 대 TEXT 사용 그 신문을 읽었습니다.VARCHAR(MAX) 유형할 수 은 이유형은(2GB 저수를있할장음다데터좋니데)의 됩니다.TEXTSQL Server 2005 및 Next SQL SERVER 전터이유형니다입버데의▁sql다니유▁next입형. 열에서 문자열을 검색하려면 어떤 작업이 더 빠릅니까? 사용 사용LIKE에대조항에 VARCHAR(MAX)칼럼? WHERE COL1 LIKE '%search string%' TEXT열을 열고 이 열에 전체 텍스트 색인/카탈로그를 놓은 다음, 를 사용하여 검색합니다.CONTAINS조항? WHERE CONTAINS (Col1, 'MyToken') 그VARCHAR(MAX)은 ▁forment의 입니다.TEXT은 기적인차은점이본라..

source 2023.04.27

대규모 테이블에서 SQL Server 쿼리 성능 향상

대규모 테이블에서 SQL Server 쿼리 성능 향상 비교적 큰 테이블(현재 200만 개의 레코드)을 가지고 있는데, 임시 쿼리의 성능을 향상시킬 수 있는지 알고 싶습니다.여기서 애드혹이라는 단어가 핵심입니다.인덱스를 추가하는 것은 옵션이 아닙니다(가장 일반적으로 쿼리되는 열에 이미 인덱스가 있음). 간단한 쿼리를 실행하여 가장 최근에 업데이트된 레코드 100개를 반환합니다. select top 100 * from ER101_ACCT_ORDER_DTL order by er101_upd_date_iso desc 몇 분 걸립니다.아래 실행 계획 참조: 테이블 스캔의 추가 세부 정보: SQL Server Execution Times: CPU time = 3945 ms, elapsed time = 148524 ..

source 2023.04.27

데이터베이스 다이어그램 또는 테이블을 설계하는 데 백엔드 버전이 지원되지 않습니다.

데이터베이스 다이어그램 또는 테이블을 설계하는 데 백엔드 버전이 지원되지 않습니다. SQL Server Management Studio를 통해 새로 만든 데이터베이스에 테이블을 추가하려고 합니다.단, 다음과 같은 오류가 발생합니다. 데이터베이스 다이어그램 또는 테이블을 설계하는 데 백엔드 버전이 지원되지 않습니다. 현재 설치된 버전을 보려면 SSMS에서 클릭하면 다음과 같이 표시됩니다. 여기 무슨 일 있어?이는 일반적으로 잘못된 버전의 SSMS(Sql Server Management Studio)를 사용하여 발생한 오류로 보고됩니다.데이터베이스 버전에 맞게 설계된 버전을 사용합니다.명령어를 사용할 수 있습니다.select @@version실제로 사용하고 있는 SQL Server 버전을 확인합니다.이 버전..

source 2023.04.22

VSO를 선택하고 다음을 선택합니다.

VSO를 선택하고 다음을 선택합니다. 사용 사이의 차이입니다. SELECT ... INTO MyTable FROM... 그리고. INSERT INTO MyTable (...) SELECT ... FROM .... ? 볼트 [ 삽입]에서...]를 선택합니다.],]를 사용하여...이미 존재하지 않는 경우 기본 파일 그룹에 대한 삽입 테이블을 생성하고 이 진술에 대한 로깅이 데이터베이스에 따라 달라집니다. 어떤 진술은 무엇입니까? 다른 성능 영향은 있습니까? 선택사항은 선택 사항입니다.오버인서트 대상...? 편집: SELECT INTO가 존재하지 않는 테이블을 만든다는 것은 이미 설명했습니다.제가 알고 싶은 것은 SQL에 이 문장이 포함되어 있는 것은 이유가 있다는 것입니다만, 어떤 것입니까?을 위해 일을 있..

source 2023.04.17

데이터베이스에 대한 모든 연결을 끊는 스크립트(RESTRICTED_USER Rollback 이상)

데이터베이스에 대한 모든 연결을 끊는 스크립트(RESTRICTED_USER Rollback 이상) Visual Studio Database 프로젝트에서 (TFS 자동 빌드를 통해) 자주 다시 배포하는 개발 데이터베이스가 있습니다. 빌드를 실행하면 다음과 같은 오류가 발생할 수 있습니다. ALTER DATABASE failed because a lock could not be placed on database 'MyDB'. Try again later. ALTER DATABASE statement failed. Cannot drop database "MyDB" because it is currently in use. 이거 해봤어요. ALTER DATABASE MyDB SET RESTRICTED_USER W..

source 2023.04.17
반응형