我需要为每个注册我的应用程序的客户创建新表。
例如,我有两个表
Order_History_<ClientIdentifier>
Transcation_Log_<ClientIdentifier>
在SQL Server中,如何在旅途中创建具有自定义名称的表格,以及如何根据访问我的应用程序的客户端查询它们。
答案 0 :(得分:1)
非常简单的方法:
create procedure CreateTableForUser
(
@UserName nvarchar(100)
)
AS
BEGIN
declare @createScript nvarchar(max) =
'
create table dbo.Order_History_<ClientIdentifier>
(
id int PRIMARY KEY,
val nvarchar(100)
)
'
declare @createScript2 nvarchar(max) =
'
create table dbo.Transcation_Log_<ClientIdentifier>
(
id int PRIMARY KEY,
val nvarchar(100)
)
'
set @createScript = REPLACE(@createScript, '<ClientIdentifier>', @UserName)
set @createScript2 = REPLACE(@createScript2, '<ClientIdentifier>', @UserName)
exec sp_executesql @createScript
exec sp_executesql @createScript2
END
如果你需要更多“自动”的东西,比如通过复制他所有的字段和密钥从模板表创建表,我会使用sys。观点但写起来要长一点:P