如何在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' 附近有语法错误。
不知道是为了什么
这是我建立的存储过程
use test
go
create procedure createtable01
@name varchar(10)
as
create table @name
(date real not null)
go
但总是出错
消息 102,级别 15,状态 1,过程 createtable01,第 5 行
'@s' 附近有语法错误。
不知道是为了什么
消息 102,级别 15,状态 1,过程 createtable01,第 4 行
'@name' 附近有语法错误。
go
create procedure createtable01
@name varchar(10)
as
declare @name table
(date int not null)
go
消息 134,级别 15,状态 1,过程 createtable01,第 4 行
变量名 '@name' 已声明。变量名在查询批次或存储过程内部必须唯一。
(date real not null)这种写法,数据库肯定报错,使用变量@name作为表名,只能申明。但是你这个问题,在存储过程中实现,那表名作为变量要拼接
楼上说用拼接sql,能否详细说一下,不胜感激
(
@name NVARCHAR(64)
)
AS
DECLARE @a NVARCHAR(max)
SET @a='create table '+@name +' (a int ,b int ) '
EXEC (@a)--然后执行:
EXEC createtable @name='test'
这个方法可以
我的想法是在vb中调用一个存储过程,使用传递参数在sql server建立一个自己命名的表。
如果各位有更好的方法,不胜感激!
use test
go
create procedure createtable01
@name varchar(10)
as
exec('
create table '+ @name+'
(date real not null)')
--go
go