UNQIUEIDENFITER与int SQL Server过程类型不兼容
我有以下插入用户表的过程:UNQIUEIDENFITER与int SQL Server过程类型不兼容,sql,sql-server,stored-procedures,sql-server-2012-express,Sql,Sql Server,Stored Procedures,Sql Server 2012 Express,我有以下插入用户表的过程: -- ================================================ -- Template generated from Template Explorer using: -- Create Procedure (New Menu).SQL -- -- Use the Specify Values for Template Parameters -- command (Ctrl-Shift-M) to fill in the pa
-- ================================================
-- Template generated from Template Explorer using:
-- Create Procedure (New Menu).SQL
--
-- Use the Specify Values for Template Parameters
-- command (Ctrl-Shift-M) to fill in the parameter
-- values below.
--
-- This block of comments will not be included in
-- the definition of the procedure.
-- ================================================
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: Andy Armstrong
-- Create date:
-- Description:
-- =============================================
CREATE PROCEDURE db_SignupAddLogin
-- Add the parameters for the stored procedure here
@LoginName VARCHAR(15),
@LoginPassword VARCHAR(15)
AS
BEGIN
DECLARE @GUID UNIQUEIDENTIFIER
SET @GUID = NEWID();
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for procedure here
INSERT INTO tblMemberLogin
(
UserID,
LoginName,
LoginPassword
)
VALUES
(
@GUID,
@LoginName,
@LoginPassword
)
RETURN @GUID
END
GO
但是,当我执行它时,会出现以下错误:
Msg 206, Level 16, State 2, Procedure db_SignupAddLogin, Line 34
Operand type clash: uniqueidentifier is incompatible with int
我不知道为什么,因为我没有在任何地方引用int
我的tblMemberLogin模式如下所示:
用户ID(主键,唯一标识符,非空)
登录名(nchar(15),非空)
登录密码(nchar(15),非空)
请帮忙
RETURN
只能与int
一起使用。您只需使用SELECT
查询来检索变量@GUID
的值
参考:
返回值
只能与int
一起使用。您只需使用SELECT
查询来检索变量@GUID
的值
参考:
返回值
只能与int
一起使用。您只需使用SELECT
查询来检索变量@GUID
的值
参考:
返回值
只能与int
一起使用。您只需使用SELECT
查询来检索变量@GUID
的值
参考资料:摆脱
RETURN@GUID
你应该很好去做。摆脱RETURN@GUID
你应该很好去做。摆脱RETURN@GUID
你应该很好去做。摆脱RETURN@GUID
你应该很好去做。在SQL Server中,存储过程只能返回整数值
如果要从非整数的存储过程返回数据,可以使用输出参数:
您可以声明输出参数和输入参数:
CREATE PROCEDURE CREATE PROCEDURE db_SignupAddLogin
-- Add the parameters for the stored procedure here
@LoginName VARCHAR(15),
@LoginPassword VARCHAR(15),
@NewGuid UNIQUEIDENTIFIER OUTPUT
AS
BEGIN
SET @NewGuid = NEWID();
-- rest of procedure
END
然后使用输出参数:
DECLARE @NewLoginGuidFromSP UNIQUEIDENTIFIER
EXECUTE db_SignupAddLogin 'Username', 'password', @NewGuid = @NewLoginGuidFromSP OUTPUT;
在SQL Server中,存储过程只能返回整数值 如果要从非整数的存储过程返回数据,可以使用输出参数: 您可以声明输出参数和输入参数:
CREATE PROCEDURE CREATE PROCEDURE db_SignupAddLogin
-- Add the parameters for the stored procedure here
@LoginName VARCHAR(15),
@LoginPassword VARCHAR(15),
@NewGuid UNIQUEIDENTIFIER OUTPUT
AS
BEGIN
SET @NewGuid = NEWID();
-- rest of procedure
END
然后使用输出参数:
DECLARE @NewLoginGuidFromSP UNIQUEIDENTIFIER
EXECUTE db_SignupAddLogin 'Username', 'password', @NewGuid = @NewLoginGuidFromSP OUTPUT;
在SQL Server中,存储过程只能返回整数值 如果要从非整数的存储过程返回数据,可以使用输出参数: 您可以声明输出参数和输入参数:
CREATE PROCEDURE CREATE PROCEDURE db_SignupAddLogin
-- Add the parameters for the stored procedure here
@LoginName VARCHAR(15),
@LoginPassword VARCHAR(15),
@NewGuid UNIQUEIDENTIFIER OUTPUT
AS
BEGIN
SET @NewGuid = NEWID();
-- rest of procedure
END
然后使用输出参数:
DECLARE @NewLoginGuidFromSP UNIQUEIDENTIFIER
EXECUTE db_SignupAddLogin 'Username', 'password', @NewGuid = @NewLoginGuidFromSP OUTPUT;
在SQL Server中,存储过程只能返回整数值 如果要从非整数的存储过程返回数据,可以使用输出参数: 您可以声明输出参数和输入参数:
CREATE PROCEDURE CREATE PROCEDURE db_SignupAddLogin
-- Add the parameters for the stored procedure here
@LoginName VARCHAR(15),
@LoginPassword VARCHAR(15),
@NewGuid UNIQUEIDENTIFIER OUTPUT
AS
BEGIN
SET @NewGuid = NEWID();
-- rest of procedure
END
然后使用输出参数:
DECLARE @NewLoginGuidFromSP UNIQUEIDENTIFIER
EXECUTE db_SignupAddLogin 'Username', 'password', @NewGuid = @NewLoginGuidFromSP OUTPUT;