gpt4 book ai didi

sql-server - 如何在SQL Server中使用存储过程创建表

转载 作者:行者123 更新时间:2023-12-02 20:24:13 27 4
gpt4 key购买 nike

我想在 SQL Server 上创建一个存储过程。

我的代码是:

CREATE PROCEDURE [dbo].[Pcreate]
@name NVARCHAR(50),
@namefood NVARCHAR(50),
@restaurantname NVARCHAR(50),
@pricefood FLOAT,
@address NVARCHAR(50)
AS
BEGIN
CREATE TABLE [dbo].[@name]
(
[Id] INT NOT NULL PRIMARY KEY IDENTITY,
[@namefood] NVARCHAR(50) NOT NULL,
[@restaurantname] NVARCHAR(50) NOT NULL,
[@pricefood] FLOAT NOT NULL,
[@address] NVARCHAR(50) NOT NULL
)
END

在 C# 代码中:

db.Pcreate(name.Text, restaurantbox.SelectedItem.ToString(), getEdit1(), float.Parse(getEdit2()), adrresstxt.Text);

但是代码使用 @name 创建表,如下屏幕截图所示:

Example

最佳答案

使用查询字符串创建动态 SQL 并执行。

CREATE PROCEDURE [dbo].[Pcreate]
@name NVARCHAR(50),
@namefood NVARCHAR(50),
@restaurantname NVARCHAR(50),
@pricefood NVARCHAR(50),--Changed from Float Since It's the Column Name
@address NVARCHAR(50)
AS
BEGIN
DECLARE @Sql VARCHAR(MAX) = '
IF OBJECT_ID(''[dbo].['+@name+']'') IS NULL
BEGIN
CREATE TABLE [dbo].['+@name+']
(
[Id] INT IDENTITY(1,1) PRIMARY KEY,
['+@namefood+'] NVARCHAR(50) NOT NULL,
['+@restaurantname+'] NVARCHAR(50) NOT NULL,
['+@pricefood+'] FLOAT NOT NULL,
['+@address+'] NVARCHAR(50) NOT NULL
)
END
'

EXEC(@Sql)

END

关于sql-server - 如何在SQL Server中使用存储过程创建表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48285465/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com