728x90
반응형

안녕하세요

 

★ 테이블 생성쿼리

USE [test_db]
GO

SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE TABLE [dbo].[TB_TEST](
	[SEQ] [int] IDENTITY(1,1) NOT NULL,
	[TYPE] [varchar](5) NULL,
	[TITLE] [varchar](100) NULL,
	[CONTENTS] [varchar](2000) NULL,
	[ORDR] [varchar](5) NULL,
	[USE_AT] [varchar](1) NULL,
	[FRST_REGISTER_NM] [varchar](10) NULL,
	[FRST_REGISTER_PNTTM] [datetime] NULL,
	[LAST_UPDUSR_NM] [varchar](10) NULL,
	[LAST_UPDUSR_PNTTM] [datetime] NULL
) ON [PRIMARY]
GO

 

★ 다중 인서트 ( SEQ 컬럼은 1씩 자동 생성되게 했으므로 인서트구문에서 빠짐)

USE [test_db]
GO

INSERT INTO [dbo].[TB_TEST]
           ([TYPE]
           ,[TITLE]
           ,[CONTENTS]
           ,[ORDR]
           ,[USE_AT]
           ,[FRST_REGISTER_NM]
           ,[FRST_REGISTER_PNTTM]
           ,[LAST_UPDUSR_NM]
           ,[LAST_UPDUSR_PNTTM])
     VALUES
           ('TYPE_1', 'TITLE_1', 'CONTENTS_1', 1, 'Y', 'ADMIN',GETDATE(),'ADMIN2',GETDATE()),
           ('TYPE_1', 'TITLE_2', 'CONTENTS_2', 2, 'Y', 'ADMIN',GETDATE(),'ADMIN2',GETDATE()),
           ('TYPE_2', 'TITLE_3', 'CONTENTS_3', 3, 'N', 'ADMIN',GETDATE(),'ADMIN2',GETDATE()),
           ('TYPE_2', 'TITLE_4', 'CONTENTS_4', 4, 'Y', 'ADMIN',GETDATE(),'ADMIN2',GETDATE()),
           ('TYPE_2', 'TITLE_5', 'CONTENTS_5', 5, 'Y', 'ADMIN',GETDATE(),'ADMIN2',GETDATE())
GO

 

결과 (실패)

메시지 8152, 수준 16, 상태 30, 줄 4
문자열이나 이진 데이터는 잘립니다.
문이 종료되었습니다.

TYPE 컬럼길이가 varchar(5) 인데 insert 구문에서 길이값을 넘겨서 insert실패

DROP TABLE을 해서 새롭게 테이블을 재생성하거나

컬럼 길이값을 수정하는 방법 두가지가 있습니다.

 

★ 컬럼 길이값을 수정하는 방법

ALTER TABLE TB_TEST ALTER COLUMN TYPE varchar(10);

 

★ DROP & CREATE

USE [test_db]
GO


IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[TB_TEST]') AND type in (N'U'))
DROP TABLE [dbo].[TB_TEST]
GO

SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE TABLE [dbo].[TB_TEST](
	[SEQ] [int] IDENTITY(1,1) NOT NULL,
	[TYPE] [varchar](10) NULL,  /* 변경 */
	[TITLE] [varchar](100) NULL,
	[CONTENTS] [varchar](2000) NULL,
	[ORDR] [varchar](5) NULL,
	[USE_AT] [varchar](1) NULL,
	[FRST_REGISTER_NM] [varchar](10) NULL,
	[FRST_REGISTER_PNTTM] [datetime] NULL,
	[LAST_UPDUSR_NM] [varchar](10) NULL,
	[LAST_UPDUSR_PNTTM] [datetime] NULL
) ON [PRIMARY]
GO

 

INSERT 구문 시작

USE [test_db]
GO

INSERT INTO [dbo].[TB_TEST]
           ([TYPE]
           ,[TITLE]
           ,[CONTENTS]
           ,[ORDR]
           ,[USE_AT]
           ,[FRST_REGISTER_NM]
           ,[FRST_REGISTER_PNTTM]
           ,[LAST_UPDUSR_NM]
           ,[LAST_UPDUSR_PNTTM])
     VALUES
           ('TYPE_1', 'TITLE_1', 'CONTENTS_1', 1, 'Y', 'ADMIN',GETDATE(),'ADMIN2',GETDATE()),
           ('TYPE_1', 'TITLE_2', 'CONTENTS_2', 2, 'Y', 'ADMIN',GETDATE(),'ADMIN2',GETDATE()),
           ('TYPE_2', 'TITLE_3', 'CONTENTS_3', 3, 'N', 'ADMIN',GETDATE(),'ADMIN2',GETDATE()),
           ('TYPE_2', 'TITLE_4', 'CONTENTS_4', 4, 'Y', 'ADMIN',GETDATE(),'ADMIN2',GETDATE()),
           ('TYPE_2', 'TITLE_5', 'CONTENTS_5', 5, 'Y', 'ADMIN',GETDATE(),'ADMIN2',GETDATE())
GO
728x90
반응형

+ Recent posts