-1
我正在編寫一個程序,它將其他程序的主體和 作爲文本文件在本地存儲在我的設備中。如何在變量達到最大長度時對輸入進行分割
它正常工作時,我使用了大量的程序在這種情況下會被截斷除外。請注意我使用nvarchar(最大)。 有沒有解決問題的建議?
這是過程的一部分:
DECLARE @V_STRING NVARCHAR(MAX)=''
DECLARE @V_Table TABLE (ID INT IDENTITY(1,1),LINE NVARCHAR(MAX))
IF @V_TYPE ='P'--PROCEDURES
BEGIN
SET @[email protected]_PATH+'4.PROCEDURES'
EXECUTE SP_CreateFolder @V_PATH,@P_DataBase
SET @V_TYPE='\CREATE PROCEDURES'+'.sql'
SET @V_STRING='USE ['[email protected]_NewDB+'];
GO
IF EXISTS (SELECT name from sys.objects where name='''[email protected]_ObjectName+''' AND TYPE=''P'')
BEGIN
DROP PROCEDURE ' [email protected]_ObjectName +'
END
GO'
END
SET @V_CheckType='USE '[email protected]_DataBase+'; EXECUTE SP_HELPTEXT '[email protected]_Objec [email protected]_object refer to the name of procedure and @P_DataBase refer to database which the procedure belong
INSERT INTO @V_Table (LINE)--get the body of given object and store in variable table by using sp_HELPTEXT dictionary
EXECUTE (@V_CheckType)
INSERT INTO @V_Table (LINE)
VALUES (' GO ')
SELECT @[email protected]_STRING+LINE FROM @V_Table
Execute SP_WriteToFile @V_PATH , @V_STRING --this procedure will create a text file in the path just created
但問題時,我分配結果的變量也將被削減仍然存在off – DANAA
@DANAA爲答案添加了一個例子 –
@DANAA實際上,還有一些要檢查的內容 - SP_WriteToFile中參數的定義是什麼?如果沒有聲明爲nvarchar(max),那麼可能會在那裏截斷。 –