我做了一個存儲過程,我希望它返回true的真假取決於如果SQL語句是有效的。我想驗證一個SQL語句,然後返回它是否有效?
Create PROCEDURE [dbo].[CheckSQLStatement]
@SQL varchar(8000)
AS
SET NOEXEC ON
Exec @SQL
SET NOEXEC OFF
這個我什麼我到目前爲止,當語句是有效的,在SQL Server Management Studio中,結果是指令(S)成功完成。如果我無效的聲明返回錯誤消息,EG 'Selec'附近的語法不正確。
首先,如果語句有效,我該如何返回值爲真的錯誤。
其次我該如何返回無效的錯誤信息?
我的想法是這樣的:
Create PROCEDURE [dbo].[CheckSQLStatement]
@SQL varchar(8000),
@IsValid bit OUTPUT,
@text NVARCHAR(1000)OUTPUT
AS
SET NOEXEC ON
Exec @SQL
SET NOEXEC OFF
Select @Isvalid
Select @Text
但我不知道如何設置茨艾倫值?
有沒有更好的方法?
任何幫助將不勝感激,提前致謝。
您的問題已標記爲SQLServer 2008.如果有機會,您可以切換到SQLServer 2012,您可以使用所謂的「Microsoft SQL Server 2012 Transact-SQL語言服務」並實施擴展存儲過程來檢查您的語句。在這裏看到更多的信息:http://msdn.microsoft.com/en-us/library/microsoft.sqlserver.management.sqlparser.parser.aspx – 2012-07-12 09:04:05