怎样新建一个以表名为参数的表

hwsjtu 2003-09-13 04:31:34
CREATE PROCEDURE DBO.Create_Table
@name1 varchar(50)
AS
CREATE TABLE @name(
id integer ,
name varchar(30)
);
GO
以上是我写的存储过程
系统报错
...全文
32 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
wzh1215 2003-09-13
  • 打赏
  • 举报
回复
CREATE PROCEDURE DBO.Create_Table
@name varchar(50)
AS
exec('CREATE TABLE '+@name+'(
id integer ,
name varchar(30)
)')
GO
zjcxc 2003-09-13
  • 打赏
  • 举报
回复
一是要用exec,二是不要写分号;

用下面的这个就行了:

CREATE PROCEDURE DBO.Create_Table
@name1 varchar(50)
AS
exec('CREATE TABLE '+@name+'(
id integer ,
name varchar(30)
)')
GO
yoki 2003-09-13
  • 打赏
  • 举报
回复
表名参数必须用动态语句
exec来执行
yujohny 2003-09-13
  • 打赏
  • 举报
回复
TABLE后漏了个空格,用下面的代码
CREATE PROCEDURE DBO.Create_Table
@name varchar(50)
AS
declare @str nvarchar(200)
set @str='CREATE TABLE '+ @name+'(id integer ,name varchar(30))'
exec(@str)
yujohny 2003-09-13
  • 打赏
  • 举报
回复
CREATE PROCEDURE DBO.Create_Table
@name varchar(50)
AS
declare @str nvarchar(200)
set @str='CREATE TABLE'+ @name+'(id integer ,name varchar(30))'
exec(@str)

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧