Alex
Alex

Reputation: 555

How to overcome maximum string length of 256 chars in SQL Server 2008

This is table

 CREATE TABLE [dbo].[FotoAnons](
   [ID] [int] IDENTITY(1,1) NOT NULL,
   [StoryID] [int] NOT NULL,
   [Foto] [char](50) NULL,
   [FotoDesc] [char](300) NULL,
   [Text] [text] NULL,
   [Vrema] [char](30) NOT NULL,
   [Organizator] [char](100) NOT NULL,
   [Logo] [char](50) NULL,
   [Adress] [char](500) NULL,
   [Link] [char](50) NULL,
   [Gis] [bit] NULL,
   [Organizator1] [char](100) NULL,
   [Logo1] [char](50) NULL,
   [Adress1] [char](500) NULL,
   [Link1] [char](50) NULL,
 CONSTRAINT [PK_FotoAnons] PRIMARY KEY CLUSTERED 
 (
   [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] TEXTIMAGE_ON [PRIMARY]

 GO

I try to download table in the same way

  SELECT LTrim(RTrim(IsNull(CAST([ID] AS VARCHAR(40)),'NULL')))
    +'#'+LTrim(RTrim(IsNull(CAST([StoryID] AS VARCHAR(40)),'NULL')))
    +'#'+LTrim(RTrim(IsNull(CAST([Foto]AS VARCHAR(40)),'NULL')))
    +'#'+LTrim(RTrim(IsNull(CAST([FotoDesc] AS VARCHAR(300)),'NULL')))
    +'#'+LTrim(RTrim(IsNull(CAST([Text]AS VARCHAR(1000)),'NULL')))
    +'#'+LTrim(RTrim(IsNull(CAST([Vrema]AS VARCHAR(40)),'NULL')))
    +'#'+LTrim(RTrim(IsNull(CAST([Organizator] AS VARCHAR(40)),'NULL')))
    +'#'+LTrim(RTrim(IsNull(CAST([Logo] AS VARCHAR(150)),'NULL')))
    +'#'+LTrim(RTrim(IsNull(CAST([Adress] AS VARCHAR(250)),'NULL')))
    +'#'+LTrim(RTrim(IsNull(CAST([Link] AS VARCHAR(150)),'NULL')))
    +'#'+LTrim(RTrim(IsNull(CAST([Gis] AS VARCHAR(250)),'NULL')))
    +'#'+LTrim(RTrim(IsNull(CAST([Organizator1]AS VARCHAR(250)),'NULL')))
    +'#'+LTrim(RTrim(IsNull(CAST([Logo1] AS VARCHAR(250)),'NULL')))
    +'#'+LTrim(RTrim(IsNull(CAST([Adress1] AS VARCHAR(1000)),'NULL')))
    +'#'+LTrim(RTrim(IsNull(CAST([Link1] AS VARCHAR(500)),'NULL')))  
    + CHAR(13)+CHAR(10)
  FROM [story].[dbo].[FotoAnons]

Unfortunately result length of each row is 256 chars.

However if I download a couple of rows

FROM [story].[dbo].[FotoAnons] 
WHERE ID in (1,2)

I get the correct results with long strings.

I use an ancient version of SQL Server:

  Microsoft SQL Server 2008 (RTM) - 10.0.1779.0 (X64)   Nov 12 2008 12:10:04   
  Copyright (c) 1988-2008 Microsoft Corporation  
  Enterprise Edition (64-bit) on Windows NT 5.2 <X64> (Build 3790: Service Pack 2) 

but it stores real terabytes commercial data and no way to change version of that SQL Server.

Wrong result

Upvotes: 0

Views: 800

Answers (1)

Alex
Alex

Reputation: 555

According to clue of Martin Smith, this is restriction of MS SMS

MS SMS Restriction

Upvotes: 1

Related Questions