1
我創建了一個證書,現在我想刪除證書籤名並刪除證書。當我直接提供證書名稱時,它正在工作,但是當我使用局部變量來提供名稱時,它給了我語法錯誤。在t-sql中不斷收到語法錯誤
我已經用不同的數據類型的嘗試,以及
text, varbinary(max), char(200), varchar(200), nvarchar(200)
沒有這些數據類型的正常工作。
declare @certificate nvarchar(200)
set @certificate = 'ITManagerCertificate'
begin transaction
use DBwork
-- remove signature from stored procedure
drop signature from Report_Manager
by certificate @certificate
-- drop certificate
--DROP CERTIFICATE @certificate
if @@ERROR > 0
begin
rollback transaction
end
else begin
commit transaction
end
我不認爲你可以說參數;您需要改用動態SQL。 –
您需要了解如何閱讀[documentation](http://technet.microsoft.com/en-us/library/ms186977.aspx)中的語法圖。對於'certificate',它表示'CERTIFICATE cert_name',這意味着它需要一個字面名 - 不是*字符串*,不是*變量*。如果你被允許這樣的事情,他們明確表示。例如。如果允許一個變量,它會改爲'CERTIFICATE cert_name | @ cert_name_variable' –