首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

怎么使用存储过程创建新表

2012-12-28 
如何使用存储过程创建新表如何在SQL Server中使用存储过程创建一个新表这是我建立的存储过程use testgocre

如何使用存储过程创建新表
如何在SQL Server中使用存储过程创建一个新表
这是我建立的存储过程
use test
go
create procedure createtable01
@name varchar(10)
as 
create table  @name
(date real not null)
go
但总是出错
消息 102,级别 15,状态 1,过程 createtable01,第 5 行
'@s' 附近有语法错误。
不知道是为了什么
[最优解释]
简单的例子,但是的确没啥必要这样做。

CREATE PROC CreateTable
(
@name NVARCHAR(64)
)
AS 
DECLARE @a NVARCHAR(max)
SET @a='create table '+@name +' (a int ,b int ) '
EXEC (@a)

--然后执行:
EXEC createtable @name='test'

[其他解释]
引用:
SQL code12345678use test go create procedure createtable01 @name varchar(10) as  declare @name table   (date int not null) go
这样不行的,你@name在存储过程作为变量,在创建表的时候又作为临时表变量,肯定不行的。
[其他解释]

use test
go
create procedure createtable01
@name varchar(10)
as
exec(' 
create table '+ @name+'
(date real not null)')
--go
go

[其他解释]
错误提示
消息 102,级别 15,状态 1,过程 createtable01,第 4 行
'@name' 附近有语法错误。

[其他解释]
use test
 go
 create procedure createtable01
 @name varchar(10)
 as 
 declare @name table  
 (date int not null)
 go

[其他解释]
还是不行
消息 134,级别 15,状态 1,过程 createtable01,第 4 行
变量名 '@name' 已声明。变量名在查询批次或存储过程内部必须唯一。
[其他解释]
引用:
如何在SQL Server中使用存储过程创建一个新表
这是我建立的存储过程
use test
go
create procedure createtable01
@name varchar(10)
as 
create table  @name
(date real not null)
go
但总是出错
消息 102,级别 15,状态 1,过程 cr……
楼主这个,create table  @name
(date real not null)这种写法,数据库肯定报错,使用变量@name作为表名,只能申明。但是你这个问题,在存储过程中实现,那表名作为变量要拼接
[其他解释]
感觉你这个存储过程没什么意义啊。表的字段,结构又不能固定
[其他解释]
用拼接sql吧。你参数已经声明过@name,后面又declare @name,肯定报错拉
[其他解释]
我只是想用存储过程建一个新的表,而表的名称我可以自己设置
楼上说用拼接sql,能否详细说一下,不胜感激
[其他解释]
不胜感激!!!!!!
这个方法可以
我的想法是在vb中调用一个存储过程,使用传递参数在sql server建立一个自己命名的表。
如果各位有更好的方法,不胜感激!
[其他解释]
表命名其实不应该随便命名,后期维护成本会很大
------其他解决方案--------------------


非常感谢楼上的帮助
并不是随便命名,我是想把每次存储数据都存储到一个新的表中,这个表的名子每次都是不同的

热点排行