在数据库项目中部署证书的正确语法

时间:2014-08-06 21:01:17

标签: sql-server visual-studio-2010 certificate database-project

如何根据项目中的更改创建,更新和删除Visual Studio 2010数据库项目中的证书,类似于它处理表,存储过程,键和其他对象的方式?

以下是我目前使用的语法和$(CertName)

CREATE CERTIFICATE [$(CertName)]
    AUTHORIZATION [dbo]
    WITH SUBJECT = N'Encrypt Data', START_DATE = N'11/26/2012 15:13:03', EXPIRY_DATE = N'11/26/2013 15:13:03'
    ACTIVE FOR BEGIN_DIALOG = ON;

我尝试使用下面的if语句检查它是否存在。

IF (select Count(*) from sys.symmetric_keys where name like '$(CertName)') = 0
BEGIN
    --insert create statement
END

然而,使用这种方法,我得到以下错误,因为我在对称密钥的定义中使用了证书。

  

SQL03006:对称密钥:[$(KeyName)]具有对证书[$(CertName)]的未解析引用。

1 个答案:

答案 0 :(得分:0)

试试这个:

IF EXISTS (SELECT 1 FROM sys.certificates where name = '$(CertName)')