1

アプリケーションにサインアップするすべてのクライアントに対して、新しいテーブルを作成する必要があります。

たとえば、2つのテーブルがあります

Order_History_<ClientIdentifier>
Transcation_Log_<ClientIdentifier>

SQL Serverで、外出先でカスタマイズされた名前のテーブルを作成するにはどうすればよいですか。また、アプリケーションにアクセスしているクライアントに応じてテーブルをクエリするにはどうすればよいですか。

4

1 に答える 1

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

于 2012-11-18T09:22:26.087 に答える