반응형

sql-server 17

SQL Server의 큰 테이블에 NOT NULL 열을 추가하는 방법은 무엇입니까?

SQL Server의 큰 테이블에 NOT NULL 열을 추가하는 방법은 무엇입니까? 레코드가 많은 테이블에 NOT NULL 열을 추가하려면 DEFAULT 제약 조건을 적용해야 합니다.이 제약 조건으로 인해 테이블이 매우 클 경우 전체 ALTER TABLE 명령이 실행되는 데 오랜 시간이 걸립니다.그 이유는: 가정: DEFAULT 제약 조건은 기존 레코드를 수정합니다.이는 DB가 각 레코드의 크기를 늘려야 하므로 전체 데이터 페이지의 레코드를 다른 데이터 페이지로 이동시키고 시간이 걸린다는 것입니다. DEFAULT 업데이트는 원자 트랜잭션으로 실행됩니다.이는 필요한 경우 롤백을 실행할 수 있도록 트랜잭션 로그를 늘려야 함을 의미합니다. 트랜잭션 로그는 전체 기록을 추적합니다.따라서 하나의 필드만 수정되더라..

code 2023.10.10

SQL Server 사용자 매핑 오류 15023

SQL Server 사용자 매핑 오류 15023 는 제 다른 . > > > Properties > Mapping > DB > 를 한 후 ok 라고 하는 합니다. 사용자, 그룹 또는 역할 'someuser'이(가) 현재 데이터베이스에 이미 있습니다.(Microsoft SQL Server, 오류: 15023) 오류의 원인은 무엇이며 사용자를 데이터베이스에 어떻게 매핑합니까? 사용자 및 로그인 매핑을 수정하려면 SQL Server Management Studio에서 쿼리 창을 열어야 합니다.다음 두 줄을 입력하고 myDB를 데이터베이스 이름으로 바꾸고 myUser를 올바른 사용자 이름으로 바꿉니다. USE myDB EXEC sp_change_users_login 'Auto_Fix', 'myUser' 성공적으로..

code 2023.07.07

여러 레코드를 삽입하고 ID 값을 얻는 방법은 무엇입니까?

여러 레코드를 삽입하고 ID 값을 얻는 방법은 무엇입니까? 나는 다른 B 테이블의 A 테이블에 여러 개의 레코드를 삽입하고 있습니다.커서를 사용하지 않고 테이블 A 레코드의 ID 값을 가져오고 테이블 B 레코드를 업데이트할 수 있는 방법이 있습니까? Create Table A (id int identity, Fname nvarchar(50), Lname nvarchar(50)) Create Table B (Fname nvarchar(50), Lname nvarchar(50), NewId int) Insert into A(fname, lname) SELECT fname, lname FROM B MS SQL Server 2005를 사용하고 있습니다.2005년의 output 절을 사용합니다. DECLARE @..

code 2023.07.02

두 행 간의 시간 차이 계산

두 행 간의 시간 차이 계산 다음이 포함된 테이블이 있습니다. DataDate Value 2010-03-01 08:31:32.000 100 2010-03-01 08:31:40.000 110 2010-03-01 08:31:42.000 95 2010-03-01 08:31:45.000 101 . . . . . . 값 열에 현재 행과 이전 행 간의 시간 차이를 곱하고 전체 하루 동안의 시간을 합해야 합니다. 현재 데이터가 10초마다 들어오도록 설정되어 있으므로 쿼리에서 간단히 변환할 수 있습니다. SELECT Sum((Value/6) FROM History WHERE DataDate BETWEEN @startDate and @endDate 여기서 @startDate 및 @endDate는 오늘의 날짜 00:00:..

code 2023.06.27

저장 프로시저의 출력을 sql server의 변수로 되돌리는 방법

저장 프로시저의 출력을 sql server의 변수로 되돌리는 방법 SQL Server에서 저장 프로시저를 실행하고 출력을 변수에 할당합니다(단일 값을 반환함)?이는 반환할 정보의 특성에 따라 다릅니다. 단일 정수 값인 경우 다음을 사용할 수 있습니다.return진술 create proc myproc as begin return 1 end go declare @i int exec @i = myproc 정수가 아니거나 스칼라 값이 여러 개인 경우 출력 매개 변수를 사용할 수 있습니다. create proc myproc @a int output, @b varchar(50) output as begin select @a = 1, @b='hello' end go declare @i int, @j varchar(5..

code 2023.06.02

SQL 테이블의 레코드를 복사하면서 새 행의 고유 ID를 스왑 아웃하려면 어떻게 해야 합니까?

SQL 테이블의 레코드를 복사하면서 새 행의 고유 ID를 스왑 아웃하려면 어떻게 해야 합니까? 이 질문은 제가 필요로 하는 것에 가깝지만, 제 시나리오는 약간 다릅니다.원본 테이블과 대상 테이블이 동일하고 기본 키가 고유 식별자(가이드)입니다.시도할 때: insert into MyTable select * from MyTable where uniqueId = @Id; 기본 키를 통해 복사하려고 하므로 기본 키 제약 조건 위반이 발생합니다.사실, 기본 키 위에 복사하고 싶지 않습니다.오히려 새로운 것을 만들고 싶습니다.또한 특정 필드에 대해 선택적으로 복사하고 나머지 필드는 null로 유지합니다.문제를 더 복잡하게 만들려면 원본 레코드의 기본 키를 가져와 사본의 다른 필드(PreviousId 필드)에 삽입..

code 2023.05.08

SQL Server에서 결과를 페이지로 이동하는 가장 좋은 방법은 무엇입니까?

SQL Server에서 결과를 페이지로 이동하는 가장 좋은 방법은 무엇입니까? 총 결과 수(페이징 전)를 얻으려면 SQL Server 2000, 2005, 2008, 2012에서 결과를 페이징하는 가장 좋은 방법은 무엇입니까?마지막으로 마이크로소프트 SQL 서버 2012가 출시되었습니다. 페이지 구성의 단순성이 정말 마음에 듭니다. 여기서 답변한 것처럼 복잡한 쿼리를 사용할 필요가 없습니다. 다음 10개 행을 가져오려면 다음 쿼리를 실행하십시오. SELECT * FROM TableName ORDER BY id OFFSET 10 ROWS FETCH NEXT 10 ROWS ONLY; https://learn.microsoft.com/en-us/sql/t-sql/queries/select-order-by-cl..

code 2023.05.03

SQL Server 2008의 XML 필드에서 값 선택

SQL Server 2008의 XML 필드에서 값 선택 XML 필드만 봐도 행은 다음과 같습니다. JonJohnson KathyCarter BobBurns 내 테이블에는 세 줄이 있습니다. SQL 결과를 테이블로 반환하고 싶습니다. Jon | Johnson Kathy| Carter Bob | Burns 어떤 쿼리가 이 작업을 수행합니까?XML 필드의 이름이 'xmlField'인 경우... SELECT [xmlField].value('(/person//firstName/node())[1]', 'nvarchar(max)') as FirstName, [xmlField].value('(/person//lastName/node())[1]', 'nvarchar(max)') as LastName FROM [myTab..

code 2023.04.28

열 이름으로 피벗 해제

열 이름으로 피벗 해제 자리가 있습니다StudentMarks열이 있는Name, Maths, Science, English데이터는 다음과 같습니다. Name, Maths, Science, English Tilak, 90, 40, 60 Raj, 30, 20, 10 저는 다음과 같이 정리하고 싶습니다. Name, Subject, Marks Tilak, Maths, 90 Tilak, Science, 40 Tilak, English, 60 unpivot을 사용하면 Name, Marks를 제대로 가져올 수 있지만 소스 테이블의 열로 가져올 수 없습니다.Subject열을 선택합니다. 어떻게 하면 이를 달성할 수 있을까요? 지금까지 다음 쿼리에 도달했습니다(이름, 마크를 얻기 위해). select Name, Marks..

code 2023.04.28

조건부 고유 제약

조건부 고유 제약 열 집합에 고유한 제약 조건을 적용해야 하지만 열의 값이 하나만 적용됩니다. 예를 들어 Table(ID, Name, Record Status)과 같은 테이블이 있습니다. RecordStatus에는 1 또는 2(액티브 또는 삭제) 값만 있을 수 있으며, 동일한 ID를 가진 삭제된 레코드가 여러 개 있어도 상관 없으므로 RecordStatus = 1일 때만 (ID, RecordStatus)에 대한 고유한 제약 조건을 만들고 싶습니다. 방아쇠를 당기는 것 말고도 할 수 있나요? SQL Server 2005를 사용하고 있습니다.보세요, 필터링된 색인입니다.문서(강조 지뢰): 필터링된 인덱스는 잘 정의된 데이터 하위 집합에서 선택하는 쿼리를 처리하는 데 특히 적합한 최적화된 비클러스터형 인덱스입..

code 2023.04.23
반응형