我试图通过以下方式创建存储过程:
DROP procedure IF EXISTS plus1inout
/;
CREATE procedure plus1inout (IN arg int, OUT res int)
BEGIN ATOMIC
set res = arg + 1;
END
/;
我收到以下错误:
Msg 156, Level 15, State 1.
Incorrect syntax near the keyword 'IF'.
Msg 156, Level 15, State 1.
Incorrect syntax near the keyword 'IN'. (Line 3)
答案 0 :(得分:1)
public static readonly DependencyProperty MaxTextLengthProperty =
DependencyProperty.Register(
"MaxTextLength",
typeof(int),
typeof(ComboBoxAutoComplete),
new UIPropertyMetadata(35));
public int MaxTextLength
{
get { return (int)GetValue(MaxTextLengthProperty); }
set
{
SetValue(MaxTextLengthProperty, value);
LimitTextInCombobox();
}
}
private void LimitTextInCombobox()
{
Combobox.Text = Combobox.Text.Substring(0, MaxTextLength);
}
然后您创建该过程。 在创建中,参数声明是错误的。
<span class="blue">stack<c>(</c>x<c>)</c>overflow</span>
.blue{color:blue;}
.blue c{color:black;}
答案 1 :(得分:1)
您的语法在sql server中无效。
用于检查存在使用object_id
函数
IF OBJECT_ID('plus1inout', 'P') IS NOT NULL
DROP PROCEDURE plus1inout
对于输入参数,您不必提及IN
关键字。对于OUTPUT
参数,请在结尾处使用关键字OUT
。参数也以@
Sql Server
开头
CREATE PROCEDURE Plus1inout (@arg INT,
@res INT output)
AS
BEGIN
SET @res = @arg + 1;
END
在SQL SERVER 2016
中,他们介绍了用于检查过程是否存在的语法
DROP procedure IF EXISTS plus1inout