[SQL] SQL Server 테이블은 두 개의 ID 열을 가질 수 있습니까?
SQLSQL Server 테이블은 두 개의 ID 열을 가질 수 있습니까?
나는 기본 키로 한 열이 필요하고 자동차에 대한 또 다른 주문 번호 필드를 증가. 이게 가능해?
편집 : 난 그냥 주문 번호로 복합 번호를 사용 것 같아요. 어쨌든 고마워.
해결법
-
==============================
1.
CREATE TABLE [dbo].[Foo]( [FooId] [int] IDENTITY(1,1) NOT NULL, [BarId] [int] IDENTITY(1,1) NOT NULL )
보고
Msg 2744, Level 16, State 2, Line 1 Multiple identity columns specified for table 'Foo'. Only one identity column per table is allowed.
그래서, 더, 당신은 두 개의 ID 열이 수 없습니다. 당신은 물론 기본 키가 아닌 자동 증가 (정체성) 할 수 있습니다.
편집 : MSDN : (2000 SQL 서버) TABLE (Transact-SQL)를하고 테이블을 만듭니다
-
==============================
2.당신이 2012 SQL 서버 사용하는 경우는 기본 값으로 두 번째 열의 순서를 사용할 수 있습니다
당신이 2012 SQL 서버 사용하는 경우는 기본 값으로 두 번째 열의 순서를 사용할 수 있습니다
--Create the Test schema CREATE SCHEMA Test ; GO -- Create a sequence CREATE SEQUENCE Test.SORT_ID_seq START WITH 1 INCREMENT BY 1 ; GO -- Create a table CREATE TABLE Test.Foo (PK_ID int IDENTITY (1,1) PRIMARY KEY, SORT_ID int not null DEFAULT (NEXT VALUE FOR Test.SORT_ID_seq)); GO INSERT INTO Test.Foo VALUES ( DEFAULT ) INSERT INTO Test.Foo VALUES ( DEFAULT ) INSERT INTO Test.Foo VALUES ( DEFAULT ) SELECT * FROM Test.Foo -- Cleanup --DROP TABLE Test.Foo --DROP SEQUENCE Test.SORT_ID_seq --DROP SCHEMA Test
http://technet.microsoft.com/en-us/library/ff878058.aspx
-
==============================
3.한 ID 열을 추가하고, 그 수식 식별 컬럼의 이름 계산 열을 추가
한 ID 열을 추가하고, 그 수식 식별 컬럼의 이름 계산 열을 추가
이제 모두가 동시에 증가합니다
-
==============================
4.아니, 하나 이상의 ID 열을 가질 수 없습니다.
아니, 하나 이상의 ID 열을 가질 수 없습니다.
엔터프라이즈 관리자는 심지어> 설정하는 방법을 허용 ID로 1 열 수 없습니다. 두 번째 열은 신원 이루어질 때
@@ IDENTITY 하나 이상의 ID 열이 테이블에 대해 수 있다면 의미가있을 것이다 열려있는 연결의 마지막 ID 값을 반환 유의하십시오.
-
==============================
5.
create table #tblStudent ( ID int primary key identity(1,1), Number UNIQUEIDENTIFIER DEFAULT NEWID(), Name nvarchar(50) )
두 ID 열 수 없습니다하지만 당신은 고유 식별자 열을 사용하도록 동의하면 다음이 코드는뿐만 아니라 동일한 작업을 수행합니다. 또한 당신은 여분의 열을 필요로 - 이름 값을 삽입 칼럼 -.
사용 예제 :
insert into #tblStudent(Name) values('Ali') select * from #tblStudent
PS : NEWID () 함수는 고유 식별자 타입의 고유 한 값을 생성한다.
-
==============================
6.기본 키는 ID 열 필요는 없습니다.
기본 키는 ID 열 필요는 없습니다.
두 신원 열을 가질 수 없습니다.
당신은 당신이 트리거로 원하는 뭔가 가까이를 얻을 수 ...
-
==============================
7.SQL 서버가 ID로 하나 이상의 열을 가질 수 없습니다.
SQL 서버가 ID로 하나 이상의 열을 가질 수 없습니다.
-
==============================
8.난 그냥 같은 테이블에 두 개의 ID를 삽입 할 수 있도록하는 코드를 만들었습니다. 내가 그것을 도움이 경우에 당신과 함께 그것을 공유 할 수 있습니다 :
난 그냥 같은 테이블에 두 개의 ID를 삽입 할 수 있도록하는 코드를 만들었습니다. 내가 그것을 도움이 경우에 당신과 함께 그것을 공유 할 수 있습니다 :
create trigger UpdateSecondTableIdentity On TableName For INSERT as update TableName set SecondIdentityColumn = 1000000+@@IDENTITY where ForstId = @@IDENTITY;
감사,
-
==============================
9.해결 방법은 카운터를 증가는 INSERT 트리거를 생성하는 것입니다.
해결 방법은 카운터를 증가는 INSERT 트리거를 생성하는 것입니다.
나는 하나 명의 신원 COL이있는 테이블이 그래서 : applicationstatusid. 그 또한 기본 키. 나는 자동 증가 다른 COL 원하는 : applicationnumber를
그래서이 트리거 I 쓰기입니다.
create trigger [applicationstatus_insert] on [ApplicationStatus] after insert as update [Applicationstatus] set [Applicationstatus].applicationnumber =(applicationstatusid+ 4000000) from [Applicationstatus] inner join inserted on [applicationstatus].applicationstatusid = inserted.applicationstatusid
from https://stackoverflow.com/questions/349092/can-a-sql-server-table-have-two-identity-columns by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] SQL 오류 : 키워드 '사용자'근처의 구문이 잘못되었습니다 (0) | 2020.04.16 |
---|---|
[SQL] BigQuery의 SQL에서 지원 UNION 기능 (0) | 2020.04.16 |
[SQL] 테이블을 기존의 자동 증가 ID를 추가 하시겠습니까? (0) | 2020.04.16 |
[SQL] 동일한 SQL 문에 여러 테이블에서 삭제할 수 있습니까? (0) | 2020.04.16 |
[SQL] 텍스트, ntext 및 화상 데이터> 유형 비교할 수없는 또는 IS NULL 또는 LIKE> 연산자를 사용하는 경우를 제외하고, 정렬 (0) | 2020.04.15 |