Solved

SQL 2000

Posted on 2011-09-24
9
370 Views
Last Modified: 2012-05-12
I have a nvarchar field set to a length of 4,000.  So, of course, I cannot insert over 900 characters into it.

Any ideas?
0
Comment
Question by:classnet
  • 4
  • 3
  • 2
9 Comments
 
LVL 92

Accepted Solution

by:
Patrick Matthews earned 250 total points
ID: 36592779
classnet,

Surely you can insert 900 characters into a nvarchar(4000) column.

Do you need to restate the problem?

:)

Patrick
0
 

Author Comment

by:classnet
ID: 36592787
Check it out Patrick... just spent forever adding and deleteing characters to find out why an obiously under 4,000 piece of text doesn't fit.  

The limit with varchar is 8,000 yet only really works up to 900 as well.
0
 
LVL 92

Expert Comment

by:Patrick Matthews
ID: 36592812
Something else is your problem, then, because both of the following SELECTs are returning 1500 as expected:

DECLARE @foo nvarchar(4000)
SET @foo = REPLICATE('x', 1500)
SELECT LEN(@foo)
CREATE TABLE zzz (foo nvarchar(4000))
INSERT INTO zzz (foo) VALUES (@foo)
SELECT LEN(foo) FROM zzz
DROP TABLE zzz

Open in new window

0
Migrating Your Company's PCs

To keep pace with competitors, businesses must keep employees productive, and that means providing them with the latest technology. This document provides the tips and tricks you need to help you migrate an outdated PC fleet to new desktops, laptops, and tablets.

 
LVL 75

Assisted Solution

by:Aneesh Retnakaran
Aneesh Retnakaran earned 250 total points
ID: 36592818
seems like you are cheking the length thru the results from the query.
you need to set the maximum column output length in query analyser.
from query analyser -> ortions -> lresults -> max lenth
set that field to 8092 (which is max)


if you jsy want to get the length from the query , use
select len(columnName) from tableName
0
 

Author Comment

by:classnet
ID: 36593019
Actually what I am trying to do is to put a 975 character question into this field... adding a letter at a time, and rerunning the page, I see that it fails at character 901.
0
 
LVL 75

Expert Comment

by:Aneesh Retnakaran
ID: 36593071
how are you inserting ?

did you run the query tht return the length
0
 

Author Comment

by:classnet
ID: 36593149
select len(columnName) from tableName  will return the length of the data in that field.

sqlStatement = "insert into Questions Values('" & Request.Form("category") & "', " & Request.Form("questionnum") & ", '" & Request.Form("question") & "')"

Response.Write sqlStatement

objConnection.Execute SQLStatement,,129

This "insert" works find until Request.Form("question") > 900
0
 

Author Comment

by:classnet
ID: 36593169
Ok guys... how do I handle... the data is actually in there and all is well.  I just, on some questions, can't see the data from the Enterprise manager.

Who gets points?
0
 
LVL 92

Expert Comment

by:Patrick Matthews
ID: 36593252
I'd be amenable to a split :)
0

Featured Post

NFR key for Veeam Backup for Microsoft Office 365

Veeam is happy to provide a free NFR license (for 1 year, up to 10 users). This license allows for the non‑production use of Veeam Backup for Microsoft Office 365 in your home lab without any feature limitations.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
Many to one in one row 2 35
removing unwanted rows from an sql server ranked table 13 34
How can I find this data? 3 23
Troubleshooting Save_Record_Click() VBA 6 16
Ever needed a SQL 2008 Database replicated/mirrored/log shipped on another server but you can't take the downtime inflicted by initial snapshot or disconnect while T-logs are restored or mirror applied? You can use SQL Server Initialize from Backup…
When table data gets too large to manage or queries take too long to execute the solution is often to buy bigger hardware or assign more CPUs and memory resources to the machine to solve the problem. However, the best, cheapest and most effective so…
This video shows how to set up a shell script to accept a positional parameter when called, pass that to a SQL script, accept the output from the statement back and then manipulate it in the Shell.
Viewers will learn how the fundamental information of how to create a table.

713 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question