Sql server 存储过程don';我跑不好
我用以下代码定义了一个存储过程:Sql server 存储过程don';我跑不好,sql-server,stored-procedures,Sql Server,Stored Procedures,我用以下代码定义了一个存储过程: ALTER PROCEDURE [dbo].[spSCT_Insert_to_SCT_AccessPermission] ( @AccessPesrmission_VahedSazmani_ID char(5)=NULL, @AccessPesrmission_GorohKarmandi_ID char(10)=NULL, @AccessPesrmission_Semat_ID char(13)=NULL, @AccessPes
ALTER PROCEDURE [dbo].[spSCT_Insert_to_SCT_AccessPermission]
(
@AccessPesrmission_VahedSazmani_ID char(5)=NULL,
@AccessPesrmission_GorohKarmandi_ID char(10)=NULL,
@AccessPesrmission_Semat_ID char(13)=NULL,
@AccessPesrmission_Personel_ID char(8)=NULL,
@AccessPermission_Read bit =NULL,
@AccessPermission_Edit bit=NULL ,
@AccessPermission_Delete bit=NULL ,
@AccessPermission_Add bit=NULL ,
@AccessPesrmission_SatheSazmani_ID char(2)=NULL ,
@AccessPesrmission_Source_ID int=NULL
)
AS
BEGIN
INSERT INTO [dbo].[SCT_AccessPermission]
([AccessPesrmission_VahedSazmani_ID]
,[AccessPesrmission_GorohKarmandi_ID]
,[AccessPesrmission_Semat_ID]
,[AccessPesrmission_Personel_ID]
,[AccessPermission_Read]
,[AccessPermission_Edit]
,[AccessPermission_Delete]
,[AccessPermission_Add]
,[AccessPesrmission_SatheSazmani_ID]
,[AccessPesrmission_Source_ID])
VALUES
(@AccessPesrmission_VahedSazmani_ID
,@AccessPesrmission_GorohKarmandi_ID
,@AccessPesrmission_Semat_ID
,@AccessPesrmission_Personel_ID
,@AccessPermission_Read
,@AccessPermission_Edit
,@AccessPermission_Delete
,@AccessPermission_Add
,@AccessPesrmission_SatheSazmani_ID
,@AccessPesrmission_Source_ID)
END
我试着这样使用它:
DECLARE @return_value int
EXEC @return_value = [dbo].[spSCT_Insert_to_SCT_AccessPermission]
@AccessPesrmission_VahedSazmani_ID = N'01001',
@AccessPesrmission_GorohKarmandi_ID = N'0101001003',
@AccessPesrmission_Semat_ID = N'0101001003008',
@AccessPesrmission_Personel_ID = NULL,
@AccessPermission_Read = 1,
@AccessPermission_Edit = 1,
@AccessPermission_Delete = 1,
@AccessPermission_Add = 1,
@AccessPesrmission_SatheSazmani_ID = N'3',
@AccessPesrmission_Source_ID = 3
SELECT 'Return Value' = @return_value
但我得到了这个错误:
varchar值“0101001003008”的转换溢出了一个int列
它是一个字符串,其类型为
varchar
。。。为什么要将其转换为int
?我没有将其转换为int
!我不想把它转换成int
您收到的错误消息是正确的:
101001003008
确实大于2147483647
((2^31)-1)
(一个int
可以容纳的最大值)
您可以使用
BigInt
列,但我怀疑您可能不应该以这种方式使用自然键…您收到的错误消息是正确的:
101001003008
确实大于2147483647
((2^31)-1)
(一个int
可以容纳的最大值)
您可以使用
BigInt
列,但我怀疑您可能不应该以这种方式使用自然键…您收到的错误消息是正确的:
101001003008
确实大于2147483647
((2^31)-1)
(一个int
可以容纳的最大值)
您可以使用
BigInt
列,但我怀疑您可能不应该以这种方式使用自然键…您收到的错误消息是正确的:
101001003008
确实大于2147483647
((2^31)-1)
(一个int
可以容纳的最大值)
您可以使用
BigInt
列,但我怀疑您可能不应该以这种方式使用自然键…它被转换为INT。INT值的最大值为2147483647,远小于101001003008。使用BIGINT的数据类型,因为它可以保存9223372036854775807的最大值
参考链接:它被转换为INT。INT值可以容纳2147483647的最大值,这比101001003008小得多。使用BIGINT的数据类型,因为它可以保存9223372036854775807的最大值
参考链接:它被转换为INT。INT值可以容纳2147483647的最大值,这比101001003008小得多。使用BIGINT的数据类型,因为它可以保存9223372036854775807的最大值
参考链接:它被转换为INT。INT值可以容纳2147483647的最大值,这比101001003008小得多。使用BIGINT的数据类型,因为它可以保存9223372036854775807的最大值
参考链接:您是否计划在问题中添加更多信息?问题出现在该表的触发器中。。。抱歉,收到您的时间。您是否计划在问题中添加更多信息?此表上的触发器中存在问题。。。抱歉,收到您的时间。您是否计划在问题中添加更多信息?此表上的触发器中存在问题。。。抱歉,收到您的时间。您是否计划在问题中添加更多信息?此表上的触发器中存在问题。。。抱歉耽误了你的时间