我需要为每个注册我的应用程序的客户创建新表。
例如,我有两张桌子
Order_History_<ClientIdentifier>
Transcation_Log_<ClientIdentifier>
在 SQL Server 中,如何随时随地创建具有自定义名称的表,以及如何根据正在访问我的应用程序的客户端查询它们。
我需要为每个注册我的应用程序的客户创建新表。
例如,我有两张桌子
Order_History_<ClientIdentifier>
Transcation_Log_<ClientIdentifier>
在 SQL Server 中,如何随时随地创建具有自定义名称的表,以及如何根据正在访问我的应用程序的客户端查询它们。
非常简单的方法:
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