[英]Dynamic Name for Database Table - Stored Procedure
我想為數據庫表創建動態名稱。 我聲明變量並將其用作表名。
錯誤:“ @ sample”附近的語法不正確。 預期為“。”,ID或QUOTED_ID
CREATE PROCEDURE [dbo].[sp_SAMPLE]
@name nvarchar(50)
AS
BEGIN
SET NOCOUNT ON;
DECLARE @sample nvarchar(50);
SET @sample = 'tbl_function_' + @name;
Create Table @sample
(
id int not null,
UserType nvarchar(50) null,
paramater2 nvarchar(50) null
)
END
有什么辦法可以使我的表名動態化? 謝謝。
我不確定您為什么要這樣做。 但是,您可以使用動態SQL來做到這一點:
CREATE PROCEDURE [dbo].[sp_SAMPLE]
@name nvarchar(50)
AS
BEGIN
SET NOCOUNT ON;
DECLARE @sql nvarchar(max);
SET @sql = '
Create Table tbl_function_@name
(
id int not null,
UserType nvarchar(50) null,
paramater2 nvarchar(50) null
)';
SET @sql = REPLACE(@sql, '@name', @name);
EXEC sp_executesql @sql;
END;
為什么要為每個@name
創建一個單獨的表 ,而不是僅在列中插入帶有@name
的行?
CREATE PROCEDURE [dbo].[sp_SAMPLE]
@name nvarchar(50)
AS
BEGIN
SET NOCOUNT ON
DECLARE @sql varchar(4000);
SET @sql = '
Create Table tbl_function_'+@name+'
(
id int not null,
UserType nvarchar(50) null,
paramater2 nvarchar(50) null
)'
EXEC (@sql)
END
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.