在SQL Server 2008下面的存儲過程中拋出一個錯誤SQL Server存儲過程的參數的數據類型的錯誤
/****** Object: StoredProcedure [dbo].[UpdateCPA] ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[pdateCPA_INT]
@CPAColumn_Name nvarchar(100), @value Int, @RecordNum nvarchar(100)
AS
BEGIN
SET NOCOUNT ON;
--declare @CPAColumn_Name nvarchar(100) = 'UsrsID'
--declare @value Int = 3575
--declare @RecordNum int = 1
declare @thedate smalldatetime
set @thedate = GETDATE()
--select @thedate as NOW
declare @cmd nvarchar(max)
set @cmd = 'Update tblTimeCPAReport
set ' + @CPAColumn_Name + ' = '[email protected]+'
set ReportLastUpdate = ' + @thedate + '
where RecordNum='[email protected]
exec sp_executesql @cmd
select @cmd
END
它拋出這個錯誤轉換nvarchar的值時
轉換失敗「更新 tblTimeCPAReport設置UsrsID ='爲數據類型int。
好吧,所以我實際上不必爲每個數據類型設置不同的SP,因爲它根據值類型和數據庫容器爲它自己找出了一個文本句子,確保我沒有「違反規則」,這就是它所需要的。 @ – LoneXcoder
@LoneXcoder你可以以正確的格式傳遞數據類型,但是當你將它添加到你的'@ cmd'時,它將需要與那個變量相同的數據類型,否則它將不兼容 – Taryn
我希望你不介意它仍然拋出一個錯誤,雖然我已經解決了更復雜的問題然後這個簡單的我不能把我的手指放在哪裏出錯我會更新我的問題請按照 – LoneXcoder