त्रुटियों
यानी
CREATE PROCEDURE p_try_cast
@type nvarchar(MAX),
@value nvarchar(MAX)
AS
BEGIN
BEGIN TRY
DECLARE @sql varchar(MAX)
DECLARE @out_table TABLE(value varchar(MAX))
SET @sql = 'SELECT CONVERT(varchar(max), CAST(''' + @value + ''' AS ' + @type + '))'
INSERT @out_table
EXECUTE (@sql)
IF EXISTS (SELECT 1 FROM @out_table WHERE value = @value)
RETURN 1
RETURN 0
END TRY
BEGIN CATCH
RETURN 0
END CATCH
END
GO
को दबाने के लिए एक TRY पकड़ने ब्लॉक के साथ एक प्रक्रिया का उपयोग अब आप कॉल कर सकते हैं स्ट्रिंग पारित और इच्छित प्रकार और proc के साथ देता है कि सफलता के लिए 1 और 0 के लिए विफलता के लिए
DECLARE @ret int
-- This returns 0 - Fail
EXEC @ret = p_try_cast 'integer', '1.5'
-- This returns 1 - Success
EXEC @ret = p_try_cast 'integer', '1.5'
-- This returns 0 - Fail
EXEC @ret = p_try_cast 'char(4)', 'HELLO'
-- This returns 1 - Success
EXEC @ret = p_try_cast 'char(4)', 'HELL'
स्रोत
2017-11-20 17:15:06
-1: isnumeric ('1।') का चयन करें; कास्ट का चयन करें ('1।'int के रूप में); – Pete
ISNumeric ('a1a') 1 लौटाता है, हालांकि आप कभी भी ('ए 1 ए' फ्लोट के रूप में नहीं डाले जा सकते हैं) – CodingTT
मेरा मानना है कि आपका मतलब SQL सर्वर 2014: https://msdn.microsoft.com/en-us/library/hh974669.aspx –