中不接受換行符我試圖把逗號分隔值作爲參數存儲過程,但是當我按下「Enter」鍵來繼續這些值,以便它可以在單個屏幕中看到(不滾動),SP不接受其之後提供的值「回車」鍵被按下時在新行(單元)存儲過程在參數
USP_SAMPLE_SP @YEAR, @EMPIDS
如果我執行存儲如下程序:
USP_SAMPLE_SP '2016','111,222,333,444,555'
它正在執行正確
但是,如果我試圖執行象下面這樣:
USP_SAMPLE_SP '2016','111,222,
333,444,555'
它接受所有值但它顯示值達到「222」之後,它是不考慮任何價值。
參照「換行」我的意思是它是接受象下面這樣:
USP_SAMPLE_SP '2016','111, 222,333,444,555'
但是,如果我按「回車」這之後
不接受值。如果任何人能解釋這情景會有所幫助。
注意:有時我需要傳遞大量值(例如1000或更高)。
請建議是否有人知道更好和有效的方法來做到這一點。
首先我創建用戶定義的表類型爲的empType
CREATE TYPE [dbo].[EMPType] AS TABLE(
FinStartYear varchar(4),
EmpId nvarchar(max) NULL
)
然後我試圖通過爲改變我的存儲過程,如下這些值:
ALTER PROCEDURE [USP_SAMPLE_SP]
-- Add the parameters for the stored procedure here
@FinStartYear EMPType readonly ,
@EmpIDs EMPType readonly
AS
但是,當我將鼠標懸停鼠標超過參數它顯示我下面的錯誤:
The Parameter '@FinStartYear' cannot be declared READONLY since it is not table valued parameter.
The Parameter '@EmpIDs' cannot be declared READONLY since it is not table valued parameter.
但是當我試圖人之三的存儲過程,它顯示如下錯誤我:
Must declare the scalar variable "@EmpIDs".
Must declare the scalar variable "@FinStartYear"
當我將鼠標懸停在「的empType」它讓我看到下面的錯誤:
Parameter or variable '@FinStartYear' has an invalid datatype.
注:在可編程 - >類型 - >用戶定義表類型 - > dbo.EMPType
它顯示我已經創建了EMPType。
謝謝...你能告訴我如何刪除字符串中的換行符。 – Shardul
其實我正在使用SplitString函數,並將@EMPIDS參數傳遞給它。 我嘗試過使用LTRIM和RTRIM函數,但它不起作用 – Shardul
@Shardul - 查看我的更新。 SplitString不是內置SQL Server函數的名稱,所以如果沒有看到代碼,就不可能知道它的行爲。 –