SQL Server:证书创建中的常量和变量

问题描述:

我以某种方式无法弄清楚创建我的证书的语法。我用一个常量和一个变量命名它是完全失败的。SQL Server:证书创建中的常量和变量

现在它看起来有点像这样:

IF NOT EXISTS (SELECT * 
       FROM sys.certificates 
       WHERE name = 'Cert_' + @GroupName) 
    CREATE CERTIFICATE 'Cert_' + @GroupName 
    WITH SUBJECT = 'I hate pinchers' 

只是不能语法,同时保持功能工作。

我想你可以使用动态SQL

DECLARE @GroupName varchar(20) 
DECLARE @query nvarchar(max) = N'IF NOT EXISTS (SELECT * 
      FROM sys.certificates 
      WHERE name = Cert_' + @GroupName +') 
    CREATE CERTIFICATE Cert_' + @GroupName + 
    'WITH SUBJECT = ''I hate pinchers''' 
EXEC(@query)