달력

52024  이전 다음

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

'concat || MSSQL'에 해당되는 글 1건

  1. 2015.01.02 MS-SQL, MY-SQL .. etc...
반응형

MS-SQL 컬럼 길이 변경

ALTER TABLE Product
ALTER COLUMN [ProductNumber] NVARCHAR(150)

 

테이블 삭제

DROP TABLE Product


칼럼 변경

ALTER TABLE Product ALTER COLUMN ProductNumber NVARCHAR(100) NULL


새로운 칼럼 추가

ALTER TABLE Product ADD ProductNumber NVARCHAR(100) NULL

 

여러개의 새로운 칼럼 추가

ALTER TABLE Product ADD ProductNumber NVARCHAR(100) NULL,

ADD ProductName NVARCHAR(100) NULL

 

칼럼 삭제

ALTER TABLE member DROP COLUMN birth_day_type

 

 

[ MSDN - ALTER TABLE http://msdn.microsoft.com/ko-kr/library/ms190273.aspx ]

 

 

ALTER TABLE(Transact-SQL) : 

열과 제약 조건을 변경, 추가 또는 삭제하거나 파티션을 재할당하거나 

제약 조건과 트리거를 설정 또는 해제하여 테이블 정의를 수정합니다.

 

테이블 : T1

컬럼 : col1


ex1 : 인터넷 검색.

ex2 : 현재 내가 사용중인것.(부 : SQL SERVER 2005, 주 : SQL SERVER 2008 R2)

 

 

1. 컬럼 추가

 

ALTER TABLE 테이블명 ADD 컬럼명 

ex1> 

ALTER TABLE T1 ADD col1

 

ex2>

ALTER TABLE T1 ADD col1 NVARCHAR(20) NOT NULL

 

ex2> T1 테이블에 col1 칼럼이 없는 경우 col1 컬럼을 추가 한다.

 

DECLARE @table_id int

DECLARE @nCount int

 

 

SET @table_id = object_id('T1'

SELECT @nCount=COUNT(name) FROM syscolumns WHERE id = @table_id and name='col1'

IF @nCount = 0

ALTER TABLE T1 ADD col1 NVARCHAR(20) NOT NULL;

 

2. 컬럼 수정

 

ALTER TABLE 테이블명 MODIFY (컬럼명 데이터타입 제약조건) 

ex1>

ALTER TABLE T1 MODIFY (col1 NVARCHAR(20) NOT NULL)

 

ex2>

ALTER TABLE T1 ALTER COLUMN col1 NVARCHAR(20) NOT NULL

 

 

3. 컬럼 삭제

 

ALTER TABLE 테이블명 DROP 컬럼명

ex1>

ALTER TABLE T1 DROP col1

 

ex2>

ALTER TABLE T1 DROP COLUMN col1

 

 

4. 컬럼 제약조건 추가

 

ALTER TABLE 테이블명 ADD CONSTRAINT 제약조건 

ex1> 

ALTER TABLE T1 ADD CONSTRAINT PK_T1 PRIMARY KEY (col1)

 

ex2>

ALTER TABLE T1 ADD CONSTRAINT PK_T1 PRIMARY KEY col1


ex2>

ALTER TABLE T1 ADD CONSTRAINT PK_T1 PRIMARY KEY CLUSTERED  

(

[col1] ASC

)

 


ex2>

ALTER TABLE T1 ADD CONSTRAINT PK_T1 PRIMARY KEY CLUSTERED 

(

[col1] ASC,

[col2] ASC

)


5. 컬럼 제약조건 제거


ALTER TABLE 테이블명 DROP CONSTRAINT 제약조건

 

ex2>

DECLARE @nCount int

 

SELECT @nCount=COUNT(CONSTRAINT_NAME) FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS 

WHERE TABLE_NAME = 'T1'

IF @nCount > 0

ALTER TABLE T1 DROP CONSTRAINT PK_T1

 

 

 

6. 컬럼명 수정

 

EXEC SP_RENAME 기존컬럼명, 변경할 컬럼명

ex> 

EXEC SP_RENAME 'T1', 'T2'



7. 자동 증가 컬럼에 Insert 하기


테이블에 값을 넣을때 자동 증가 컬럼에 값을 넣으려 할때면 아래와 같은 오류가 발생한다.

IDENTITY_INSERT가 OFF로 설정되면 'XXX' 테이블의 ID 열에 명시적 값을 삽입할 수 없습니다.

이럴 경우 해당 설정을 ON으로 설정 후 값을 넣은뒤 다시 OFF로 설정해 주면 된다.

*멍청한 얘기지만 당연히 INSERT 이외의 UPDATE는 이 옵션과 무관하다.(이미 옵션에_INSERT인것을...)

  자동증가 컬럼은 업데이트를 할 수 없다. 한참을 삽질을 하고 나서야 DELETE - INSERT 작업으로 처리했다.

 

col1 이 자동증가 컬럼인 경우.

SET IDENTITY_INSERT  테이블명 ON 또는 OFF


SET IDENTITY_INSERT  T1 ON

INSERT INTO  T1(col1) VALUES(값)

SET IDENTITY_INSERT  T1 OFF


초기화값으로 T1 테이블의 자동 증가값을 초기화 한다.

DBCC CHECKIDENT("T1",RESEED,초기화값)


8. 컬럼 기본값 설정


ALTER TABLE  T1 ADD  CONSTRAINT DF_T1_col1   DEFAULT ((0)) FOR col1

 

IF EXISTS (SELECT name FROM sys.objects WHERE name = N' DF_T1_col1 ' AND type=N'D' )

ALTER TABLE   T1 DROP CONSTRAINT DF_T1_col1

ELSE

ALTER TABLE   T1  ADD  CONSTRAINT   DF_T1_col1  DEFAULT ((0)) FOR col1

[출처] [MS SQL] ALTER TABLE|작성자 BK

===================================================================================================================

필드 합치기

MS SQL        - select a + b from table

MY SQL        - select concat(a,b) from table

ORACLE        - select a||b from table

===================================================================================================================

MySql을 설치한 컴퓨터에서는 MySql 접속이 잘되는데

 

원격의 컴퓨터에서 연결이 안되는 경우 아래와 같이 해결 합니다.

 

 

특정 사용자가 특정 IP주소로 입력할 때 허용할 권한을 설정하는 것입니다.


1. 특정 사용자 특정 IP에 대해 접속 권한 부여

 

GRANT ALL PRIVILEGES ON *.* TO '사용자명'@'IP주소' IDENTIFIED BY '비밀번호';

[출처] MySql 설치 후 원격(다른 컴퓨터)에서 연결 안 될 경우 |작성자 불가사리

 

 

===================================================================================================================

 

마지막으로 삽입된 ID 값을 반환하는 시스템 함수 

- INSERT 되는 테이블에 자동으로 증가하는 컬럼이 있는 경우 마지막으로 INSERT 된 자동증가 컬럼의 값을 반환합니다.

 

MS-SQL

정의

@@IDENTITY

사용 방법

SELECT @@SPID

MySql

정의

LAST_INSERT_ID()

사용 방법

SET lastNumber = LAST_INSERT_ID() ;

결 과

 

 

=========================================================================================================

Multirow Considerations for DML Triggers

http://msdn.microsoft.com/en-us/library/ms190752.aspx

===================================================================================

반응형
Posted by 친절한 웬디양~ㅎㅎ
|