4

First to clarify, I have already done a search and found a few identical questions, but the answers did not solve my problem.

I have this code:

    SET IDENTITY_INSERT [STUDY] ON
    INSERT INTO [STUDY]
    ([STUDY_ID],[PARENT_ID],[GROUP_ID],[WORKFLOW_NODE_ID],[STUDY_TEMPLATE_ID]
           ,[INSPECTION_PLAN_ID],[NAME],[DESCRIPTION],[STATUS],[OLD_STATUS],[CREATED_ON],[COMPLETED_ON]
           ,[AUTHORIZED_ON],[EVENTS],[NEEDS_REVIEW],[HAS_NOTES],[HAS_AUDITS],[STUDY_PART],[STUDY_TYPE]
           ,[EXTERNAL_REFERENCE],[CREATED_BY],[COMPLETED_BY],[AUTHORISED_BY],[ARCHIVED_CHILD_COMPLETE])
    VALUES (12345,null,null,1234,12,null,'asdf / asdf','blahblahblah','A','VPC','2010-07-01','2010-08-05','2010-09-04','(asdf,1234,#1234,F,T)','F',null,null,'F',null,'1234',1234,1234,1234,'F')
    SET IDENTITY_INSERT [STUDY] OFF

And when i run it, I get this error:

Msg 8152, Level 16, State 14, Line 2
String or binary data would be truncated.
The statement has been terminated.

Here's the create script for STUDY:

CREATE TABLE [dbo].[STUDY]
(
    [STUDY_ID] INT IDENTITY(1,1) NOT NULL,
    [PARENT_ID] BIGINT,
    [GROUP_ID] BIGINT,
    [WORKFLOW_NODE_ID] BIGINT,
    [STUDY_TEMPLATE_ID] BIGINT,
    [INSPECTION_PLAN_ID] BIGINT,
    [NAME] VARCHAR(255),
    [DESCRIPTION] VARCHAR(4000),
    [STATUS] VARCHAR(5),
    [OLD_STATUS] VARCHAR(5),
    [CREATED_ON] DATE,
    [COMPLETED_ON] DATE,
    [AUTHORIZED_ON] DATE,
    [EVENTS] VARCHAR(255),
    [NEEDS_REVIEW] VARCHAR(1),
    [HAS_NOTES] VARCHAR(1),
    [HAS_AUDITS] VARCHAR(1),
    [STUDY_PART] VARCHAR(1),
    [STUDY_TYPE] VARCHAR(255),
    [EXTERNAL_REFERENCE] VARCHAR,
    [CREATED_BY] BIGINT,
    [COMPLETED_BY] BIGINT,
    [AUTHORISED_BY] BIGINT,
    [ARCHIVED_CHILD_COMPLETE] VARCHAR(1)

PRIMARY KEY CLUSTERED 
(
    [STUDY_ID] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
1
  • +1 for providing the scripts and the query. Commented Nov 10, 2010 at 14:15

2 Answers 2

7

EXTERNAL_REFERENCE is declared as VARCHAR which is treated as VARCHAR(1).

You are trying to insert '1234' into this field.

Sign up to request clarification or add additional context in comments.

1 Comment

Oh, thanks man! I was bashing my head on the wall over this for quite a while.
1

Assuming I am counting fields correctly, you have defined "[EXTERNAL_REFERENCE] VARCHAR," which has a default length of 1 char, but the data you supply it is '1234' - 4 chars

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.