Stored Procedure varchar value more than it should be
The varchar
value of my stored procedure can contain 200 characters. When there are more than 200 characters, I want a raiserror
and a rollback
of the transaction.
How to do this? I use SQL Server
I'm having this:
@employeeid int,
@questionid int,
@date date,
@comment varchar(200),
@score int
)
as
begin
begin transaction
update contentment
set date = @date, comment= @comment, score = @score
where employeeid= @employeeid and questionid= @quesitonid
if @comment> @comment
begin
rollback
raiserror ('error more than 200 characters', 16, 1)
return
end
commit
end

add a comment |
The varchar
value of my stored procedure can contain 200 characters. When there are more than 200 characters, I want a raiserror
and a rollback
of the transaction.
How to do this? I use SQL Server
I'm having this:
@employeeid int,
@questionid int,
@date date,
@comment varchar(200),
@score int
)
as
begin
begin transaction
update contentment
set date = @date, comment= @comment, score = @score
where employeeid= @employeeid and questionid= @quesitonid
if @comment> @comment
begin
rollback
raiserror ('error more than 200 characters', 16, 1)
return
end
commit
end

Which dbms are you using? (That code is product specific.)
– jarlh
Nov 21 '18 at 10:19
The first thing your stored procedure sees is already@comment varchar(200)
. It's not going to exceed 200 characters. The truncation will happen before your procedure is called, and it will not be aware of that.
– GSerg
Nov 21 '18 at 10:23
But if the user inserts more than 200 characters? What will happen?
– DutchFatBoys
Nov 21 '18 at 10:45
add a comment |
The varchar
value of my stored procedure can contain 200 characters. When there are more than 200 characters, I want a raiserror
and a rollback
of the transaction.
How to do this? I use SQL Server
I'm having this:
@employeeid int,
@questionid int,
@date date,
@comment varchar(200),
@score int
)
as
begin
begin transaction
update contentment
set date = @date, comment= @comment, score = @score
where employeeid= @employeeid and questionid= @quesitonid
if @comment> @comment
begin
rollback
raiserror ('error more than 200 characters', 16, 1)
return
end
commit
end

The varchar
value of my stored procedure can contain 200 characters. When there are more than 200 characters, I want a raiserror
and a rollback
of the transaction.
How to do this? I use SQL Server
I'm having this:
@employeeid int,
@questionid int,
@date date,
@comment varchar(200),
@score int
)
as
begin
begin transaction
update contentment
set date = @date, comment= @comment, score = @score
where employeeid= @employeeid and questionid= @quesitonid
if @comment> @comment
begin
rollback
raiserror ('error more than 200 characters', 16, 1)
return
end
commit
end


edited Nov 21 '18 at 10:47
a_horse_with_no_name
297k46452547
297k46452547
asked Nov 21 '18 at 10:19


DutchFatBoysDutchFatBoys
487
487
Which dbms are you using? (That code is product specific.)
– jarlh
Nov 21 '18 at 10:19
The first thing your stored procedure sees is already@comment varchar(200)
. It's not going to exceed 200 characters. The truncation will happen before your procedure is called, and it will not be aware of that.
– GSerg
Nov 21 '18 at 10:23
But if the user inserts more than 200 characters? What will happen?
– DutchFatBoys
Nov 21 '18 at 10:45
add a comment |
Which dbms are you using? (That code is product specific.)
– jarlh
Nov 21 '18 at 10:19
The first thing your stored procedure sees is already@comment varchar(200)
. It's not going to exceed 200 characters. The truncation will happen before your procedure is called, and it will not be aware of that.
– GSerg
Nov 21 '18 at 10:23
But if the user inserts more than 200 characters? What will happen?
– DutchFatBoys
Nov 21 '18 at 10:45
Which dbms are you using? (That code is product specific.)
– jarlh
Nov 21 '18 at 10:19
Which dbms are you using? (That code is product specific.)
– jarlh
Nov 21 '18 at 10:19
The first thing your stored procedure sees is already
@comment varchar(200)
. It's not going to exceed 200 characters. The truncation will happen before your procedure is called, and it will not be aware of that.– GSerg
Nov 21 '18 at 10:23
The first thing your stored procedure sees is already
@comment varchar(200)
. It's not going to exceed 200 characters. The truncation will happen before your procedure is called, and it will not be aware of that.– GSerg
Nov 21 '18 at 10:23
But if the user inserts more than 200 characters? What will happen?
– DutchFatBoys
Nov 21 '18 at 10:45
But if the user inserts more than 200 characters? What will happen?
– DutchFatBoys
Nov 21 '18 at 10:45
add a comment |
1 Answer
1
active
oldest
votes
There is no need to do anything special. As @GSerg commented, the parameter type is varchar(200)
which means that the procedure will never get more than 200 characters, so there is nothing you can do within the procedure itself, so you're better off just removing the validation from it.
You can attempt some validation before calling the procedure itself. It's better to do either client-side or in another procedure that wraps this.
Another option is to change the definition to take a varchar(max)
and validate the lenght there (as it'll now allow pretty much unlimited strings).
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53409862%2fstored-procedure-varchar-value-more-than-it-should-be%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
There is no need to do anything special. As @GSerg commented, the parameter type is varchar(200)
which means that the procedure will never get more than 200 characters, so there is nothing you can do within the procedure itself, so you're better off just removing the validation from it.
You can attempt some validation before calling the procedure itself. It's better to do either client-side or in another procedure that wraps this.
Another option is to change the definition to take a varchar(max)
and validate the lenght there (as it'll now allow pretty much unlimited strings).
add a comment |
There is no need to do anything special. As @GSerg commented, the parameter type is varchar(200)
which means that the procedure will never get more than 200 characters, so there is nothing you can do within the procedure itself, so you're better off just removing the validation from it.
You can attempt some validation before calling the procedure itself. It's better to do either client-side or in another procedure that wraps this.
Another option is to change the definition to take a varchar(max)
and validate the lenght there (as it'll now allow pretty much unlimited strings).
add a comment |
There is no need to do anything special. As @GSerg commented, the parameter type is varchar(200)
which means that the procedure will never get more than 200 characters, so there is nothing you can do within the procedure itself, so you're better off just removing the validation from it.
You can attempt some validation before calling the procedure itself. It's better to do either client-side or in another procedure that wraps this.
Another option is to change the definition to take a varchar(max)
and validate the lenght there (as it'll now allow pretty much unlimited strings).
There is no need to do anything special. As @GSerg commented, the parameter type is varchar(200)
which means that the procedure will never get more than 200 characters, so there is nothing you can do within the procedure itself, so you're better off just removing the validation from it.
You can attempt some validation before calling the procedure itself. It's better to do either client-side or in another procedure that wraps this.
Another option is to change the definition to take a varchar(max)
and validate the lenght there (as it'll now allow pretty much unlimited strings).
answered Nov 21 '18 at 10:57
AlejandroAlejandro
4,38722237
4,38722237
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53409862%2fstored-procedure-varchar-value-more-than-it-should-be%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Which dbms are you using? (That code is product specific.)
– jarlh
Nov 21 '18 at 10:19
The first thing your stored procedure sees is already
@comment varchar(200)
. It's not going to exceed 200 characters. The truncation will happen before your procedure is called, and it will not be aware of that.– GSerg
Nov 21 '18 at 10:23
But if the user inserts more than 200 characters? What will happen?
– DutchFatBoys
Nov 21 '18 at 10:45