2

我正在使用 Microsoft SQL Server 构建具有共享表结构的多租户应用程序。

我想知道是否可以通过 sql server 连接传递tenantID 参数。我不想为每个租户创建单独的用户帐户。

目前我看到两种方式:通过 ApplicationName 或 WorkstationID

最好的问候, 阿列克谢·扎哈罗夫

4

1 回答 1

3

我会使用连接字符串的应用程序名称,然后很容易在 TSQL 中使用APP_NAME (Transact-SQL)获得。

但是,您也可以考虑使用CONTEXT_INFO (Transact-SQL)

--to set value
DECLARE @CONTEXT_INFO  varbinary(128)
SET @CONTEXT_INFO =cast('Anything Here!!'+REPLICATE(' ',128) as varbinary(128))
SET CONTEXT_INFO @CONTEXT_INFO


--to use value
IF CAST(CONTEXT_INFO() AS VARCHAR(128))='Anything Here!'
BEGIN
    --do something
END
于 2010-05-20T11:38:25.860 回答