반응형

sql-server 35

SQL 서버:풀링된 연결 간의 절연 수준 누출

SQL 서버:풀링된 연결 간의 절연 수준 누출 이전 스택 오버플로 질문(트랜잭션 범위 및 연결 풀링 및 SqlConnection의 분리 관리 방법)에서 확인할 수 있습니다.레벨?), 트랜잭션 격리 레벨은 SQL Server 및 ADO.NET(시스템)과 풀링된 연결에서 누출됩니다.ADO.NET을 기반으로 하기 때문에 트랜잭션 및 EF. 즉, 다음과 같은 위험한 일련의 이벤트가 모든 애플리케이션에서 발생할 수 있습니다. 데이터 일관성을 보장하기 위해 명시적인 트랜잭션이 필요한 요청이 발생합니다. 중요하지 않은 읽기만 수행하기 때문에 명시적 트랜잭션을 사용하지 않는 다른 모든 요청이 수신됩니다.이 요청은 이제 직렬화 가능한 것으로 실행되므로 위험한 차단 및 교착 상태를 유발할 수 있습니다. 질문:이 시나리오를..

itsource 2023.07.01

SQL Server에서 관련 없는 내용을 쓰는 것을 중지하는 방법(1개 행이 영향을 받음)

SQL Server에서 관련 없는 내용을 쓰는 것을 중지하는 방법(1개 행이 영향을 받음) 실행되는 각 작업에 대한 정보 출력을 중지하도록 SQL 스크립트 내에서 실행할 수 있는 명령이 있습니까? iE 보기 싫어요: (1 row(s) affected) (1 row(s) affected) (1 row(s) affected) 사용: SET NOCOUNT ON 이러한 메시지를 표시하지 않고 아래 명령을 사용하여 메시지를 사용하도록 설정합니다. SET NOCOUNT OFF 다음 명령을 실행합니다. set nocount on 언급URL : https://stackoverflow.com/questions/1377067/how-to-stop-sqlserver-writing-extraneous-stuff-eg-1-ro..

itsource 2023.07.01

SQL Server에서 테이블 값 함수에 CTE 문을 사용하는 방법

SQL Server에서 테이블 값 함수에 CTE 문을 사용하는 방법 일부 버전의 Microsoft OLE DB Provider for SQL Server(대부분 Windows XP)는WITH진술.그래서 저는 제 SQL 문을 테이블 값 함수로 이동하고 애플리케이션에서 호출하기로 결정했습니다.이제, 난 꼼짝도 안 해요.사용 방법INSERT INTO와의 진술.WITH제가 지금까지 가지고 온 코드가 여기 있는데 SQL Server가 마음에 안 들어요... :-( CREATE FUNCTION GetDistributionTable ( @IntID int, @TestID int, @DateFrom datetime, @DateTo datetime ) RETURNS @Table_Var TABLE ( [Count] int..

itsource 2023.06.26

SQL "IN" 절에서 튜플 사용

SQL "IN" 절에서 튜플 사용 group_id 및 group_type 필드가 포함된 테이블이 있는데, 이 테이블에서 튜플 목록에서 튜플(그룹 ID, 그룹 유형)이 있는 모든 레코드를 쿼리하려고 합니다.예를 들어 다음과 같은 작업을 수행할 수 있습니다. SELECT * FROM mytable WHERE (group_id, group_type) IN (("1234-567", 2), ("4321-765", 3), ("1111-222", 5)) sql in 절에서 튜플을 사용하는 것과 매우 유사한 질문이 이미 에 있지만, 제안된 솔루션은 튜플 목록을 다른 테이블에서 가져올 것으로 가정합니다.이 경우 튜플 값이 하드 코딩되어 있기 때문에 작동하지 않습니다. 한 가지 해결책은 문자열 연결을 사용하는 것입니다. ..

itsource 2023.06.21

SELECT max(x)가 null을 반환합니다. 0을 반환하려면 어떻게 해야 합니까?

SELECT max(x)가 null을 반환합니다. 0을 반환하려면 어떻게 해야 합니까? 다음 명령을 실행할 때 null 대신 0을 반환하는 방법은 무엇입니까? SELECT MAX(X) AS MaxX FROM tbl WHERE XID = 1 (XID=1인 행이 없다고 가정)또는: SELECT coalesce(MAX(X), 0) AS MaxX FROM tbl WHERE XID = 1 SQL 2005/2008의 경우: SELECT ISNULL(MAX(X), 0) AS MaxX FROM tbl WHERE XID = 1 다음과 같이(MySQL의 경우): SELECT IFNULL(MAX(X), 0) AS MaxX FROM tbl WHERE XID = 1 MSSQL의 경우 대체IFNULL와 함께ISNULL또는 Ora..

itsource 2023.06.21

PATINDEX 패턴 인수에서 밑줄 문자를 이스케이프하는 방법은 무엇입니까?

PATINDEX 패턴 인수에서 밑줄 문자를 이스케이프하는 방법은 무엇입니까? PATINDEX를 사용하여 밑줄 위치를 찾는 솔루션을 찾았습니다. DECLARE @a VARCHAR(10) SET @a = '37_21' PRINT PATINDEX('%_%', @a) -- return 1 (false) PRINT PATINDEX('%!%', REPLACE(@a, '_', '!')) -- return 3 (correct) 다른 생각 있으세요?언더스코어 캐릭터를 탈출하는 방법처럼? 저는 항상 괄호를 사용해서 해왔습니다.'%[_]%'두 개의 밑줄을 일치시키려면 각 밑줄을 대괄호로 묶어야 합니다. '%[__]%' -- matches single _ with anything after '%[_][_]%' -- match..

itsource 2023.06.21

분산 트랜잭션을 시작할 수 없습니다.

분산 트랜잭션을 시작할 수 없습니다. 연결된 서버에 대해 SQL을 실행하려고 하는데 아래 오류가 발생합니다. BEGIN DISTRIBUTED TRANSACTION SELECT TOP 1 * FROM Sessions OLE DB provider "SQLNCLI" for linked server "ASILIVE" returned message "No transaction is active.". Msg 7391, Level 16, State 2, Line 3 The operation could not be performed because OLE DB provider "SQLNCLI" for linked server "ASILIVE" was unable to begin a distributed transacti..

itsource 2023.04.27

테이블이 존재하는지 확인하고 존재하지 않는 경우 SQL Server 2008에서 생성합니다.

테이블이 존재하는지 확인하고 존재하지 않는 경우 SQL Server 2008에서 생성합니다. SQL Server 2008에 저장 프로시저를 쓰고 있습니다.데이터베이스에 테이블이 있는지 확인해야 합니다.그렇지 않은 경우 생성해야 합니다. 이거 어떻게 해?뭐 이런 거 IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[YourTable]') AND type in (N'U')) BEGIN CREATE TABLE [dbo].[YourTable]( .... .... .... ) END 참고로 다음과 같은 object_id 함수를 사용하는 것이 좋습니다.읽기 쉽고 sys.objects vs. sys.all_objects vs. ..

itsource 2023.04.17

T-SQL 선택에서 각 행에 대해 난수를 생성하려면 어떻게 해야 합니까?

T-SQL 선택에서 각 행에 대해 난수를 생성하려면 어떻게 해야 합니까? 테이블의 각 행마다 다른 난수가 필요합니다.다음 명백한 코드는 각 행에 동일한 랜덤 값을 사용합니다. SELECT table_name, RAND() magic_number FROM information_schema.tables INT나 Float를 받고 싶습니다.나머지 내용은 이 랜덤 숫자를 사용하여 알려진 날짜로부터 랜덤 날짜 오프셋을 만듭니다(예: 시작 날짜로부터 1-14일 오프셋). 이것은 Microsoft SQL Server 2000용입니다.SQL Server - 매우 자세한 설명이 있는 난수 설정(Set based random number)을 참조하십시오. 요약하면, 다음 코드는 균일한 분포를 가진 0에서 13 사이의 난수..

itsource 2023.04.17

T-SQL을 사용하여 외부 키 제약을 일시적으로 해제하려면 어떻게 해야 합니까?

T-SQL을 사용하여 외부 키 제약을 일시적으로 해제하려면 어떻게 해야 합니까? SQL Server에서 외부 키 제약 조건 비활성화 및 활성화가 지원됩니까?아니면 제약 조건을 다시 적용하는create 방법밖에 없나요?데이터베이스의 모든 제약을 비활성화하려면 다음 코드를 실행하십시오. -- disable all constraints EXEC sp_MSforeachtable "ALTER TABLE ? NOCHECK CONSTRAINT all" 스위치를 다시 켜려면 다음을 수행합니다(물론 인쇄는 옵션이며 표만 나열됩니다). -- enable all constraints exec sp_MSforeachtable @command1="print '?'", @command2="ALTER TABLE ? WITH CHE..

itsource 2023.04.17
반응형