使用 uniqueidentifier 输入参数执行存储过程时出错
Error executing stored procedure with uniqueidentifier input parameter
当我执行第一个输入参数类型为 uniqueidentifier
的存储过程时,它是 table 中的主键列,将值插入其中,它抛出以下错误。我找不到这个输入或存储过程有什么问题。
EXEC @return_value = DbInsert
@id = EX642793-385D-604F-BE81-0000CD376836,
@name= N'000001_067_0xed642993385d604fbe810000cd376836.tif',
@image = 0x49492A00080000001300FE00040001000000020000000001040001000000C50900000101040001000000E90D0000020103000
SELECT 'Return Value' = @return_value
我的存储过程:
CREATE PROCEDURE DbInsert
@id UNIQUEIDENTIFIER,
@name VARCHAR(255),
@image IMAGE
AS
BEGIN
SET NOCOUNT ON;
INSERT INTO TbImage (Id, Name, Image )
VALUES (@id, @name, @image)
END
错误:
Msg 102, Level 15, State 1, Line 7
Incorrect syntax near '-'.
更新
我试图右键单击存储过程并执行,它并没有要求我提供报价和所有内容,但我上面写的查询是它显示的错误。当我尝试引用时,它会抛出以下错误
Msg 8114, Level 16, State 1, Procedure DbInsert, Line 0 [Batch Start Line 2]
Error converting data type varchar to uniqueidentifier. (1 row(s) affected)
再次更新
通过自己更改一些数字来使用有效 Uniqueidentifier
,但是将 X 替换为其他一些字符...仍然没有成功。
EM662993-385D-604F-BE81-0000CD376838
您的代码有 2 个问题:
您需要用单引号将唯一标识符例如'DE5AA552-0601-453C-AF21-9B285FA4E920'
.
A guid/uniqueidentifier 必须只包含有效的十六进制字符,而 X
不是有效的十六进制字符,因此在 uniqueidentifier 中无效,因此 'EX642793-385D-604F-BE81-0000CD376836'
是无效,但 'EA642793-385D-604F-BE81-0000CD376836'
有效。您可以使用 http://guid.us/Test/GUID 来验证和生成 guid。
当我执行第一个输入参数类型为 uniqueidentifier
的存储过程时,它是 table 中的主键列,将值插入其中,它抛出以下错误。我找不到这个输入或存储过程有什么问题。
EXEC @return_value = DbInsert
@id = EX642793-385D-604F-BE81-0000CD376836,
@name= N'000001_067_0xed642993385d604fbe810000cd376836.tif',
@image = 0x49492A00080000001300FE00040001000000020000000001040001000000C50900000101040001000000E90D0000020103000
SELECT 'Return Value' = @return_value
我的存储过程:
CREATE PROCEDURE DbInsert
@id UNIQUEIDENTIFIER,
@name VARCHAR(255),
@image IMAGE
AS
BEGIN
SET NOCOUNT ON;
INSERT INTO TbImage (Id, Name, Image )
VALUES (@id, @name, @image)
END
错误:
Msg 102, Level 15, State 1, Line 7
Incorrect syntax near '-'.
更新
我试图右键单击存储过程并执行,它并没有要求我提供报价和所有内容,但我上面写的查询是它显示的错误。当我尝试引用时,它会抛出以下错误
Msg 8114, Level 16, State 1, Procedure DbInsert, Line 0 [Batch Start Line 2]
Error converting data type varchar to uniqueidentifier. (1 row(s) affected)
再次更新
通过自己更改一些数字来使用有效 Uniqueidentifier
,但是将 X 替换为其他一些字符...仍然没有成功。
EM662993-385D-604F-BE81-0000CD376838
您的代码有 2 个问题:
您需要用单引号将唯一标识符例如
'DE5AA552-0601-453C-AF21-9B285FA4E920'
.A guid/uniqueidentifier 必须只包含有效的十六进制字符,而
X
不是有效的十六进制字符,因此在 uniqueidentifier 中无效,因此'EX642793-385D-604F-BE81-0000CD376836'
是无效,但'EA642793-385D-604F-BE81-0000CD376836'
有效。您可以使用 http://guid.us/Test/GUID 来验证和生成 guid。