写一个创建数据库的存储过程,为什么老是抱错?

hawaii_wx 2005-01-20 11:13:55
我想写一个创建数据库的存储过程,这个过程有3个参数,过程运行的时候通过了。但是调用的时候却老是说‘name’那里有语法错误!有哪位大哥大姐告诉我下那里错了?
以下是代码:
-------------------------创建数据库的存储过程
alter proc Mgcreatdb
@db_name varchar(10),
@db_name1 varchar(10),
@db_path varchar(40)
as
exec ('create database '+@db_name+'on'+
'('+'name'+'='+@db_name1+','+
'filename=char(39)+@db_path+char(39)+'+','+
'size=1mb'+','+
'maxsize=2mb'+','+
'filegrowth=10%'+')')
下面是调用存储过程
exec Mgcreatdb 'wodedb','mydat','E:\SQL200\mydat.mdf'
谢谢了先!
...全文
129 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
hawaii_wx 2005-01-21
  • 打赏
  • 举报
回复
ok
谢谢楼上的,过会结贴
lishengyu 2005-01-21
  • 打赏
  • 举报
回复
alter proc Mgcreatdb
@db_name varchar(10),
@db_name1 varchar(10),
@db_path varchar(40)
as
exec('create database '+@db_name+' on '+ -----注意这里有空格
'('+'name'+'='+@db_name1+','+
'filename='''+@db_path+''','+
'size=1mb'+','+
'maxsize=2mb'+','+
'filegrowth=10%'+')')
lishengyu 2005-01-21
  • 打赏
  • 举报
回复

alter proc Mgcreatdb
@db_name varchar(10),
@db_name1 varchar(10),
@db_path varchar(40)
as
exec('create database '+@db_name+' on '+
'('+'name'+'='+@db_name1+','+
'filename='''+@db_path+''','+
'size=1mb'+','+
'maxsize=2mb'+','+
'filegrowth=10%'+')')
YIXIAOYING 2005-01-21
  • 打赏
  • 举报
回复
楼主,该睡觉觉喽,结分吧
YIXIAOYING 2005-01-21
  • 打赏
  • 举报
回复
接分:p
YIXIAOYING 2005-01-21
  • 打赏
  • 举报
回复
嗯嗯,又学到了不少!
hawaii_wx 2005-01-20
  • 打赏
  • 举报
回复
有谁可以帮我一下吗?
hawaii_wx 2005-01-20
  • 打赏
  • 举报
回复
回复 frankwong(黄梓钿--宝贝女儿会逗人开心了)
你的这个想法对我有点启发,但是我运行了还是抱错,而且还是同样的错误,我估计是@sql的语句有错误,可以帮我改下吗?
hawaii_wx 2005-01-20
  • 打赏
  • 举报
回复
好的
我去试试,不过先谢谢你
frankwong 2005-01-20
  • 打赏
  • 举报
回复
alter proc Mgcreatdb
@db_name varchar(10),
@db_name1 varchar(10),
@db_path varchar(40)
as
print ('create database '+@db_name+'on'+
'('+'name'+'='+@db_name1+','+
'filename=char(39)+@db_path+char(39)+'+','+
'size=1mb'+','+
'maxsize=2mb'+','+
'filegrowth=10%'+')')

--看看输出的sql字符串是否有错误,如果没有的话,建议这样:
alter proc Mgcreatdb
@db_name varchar(10),
@db_name1 varchar(10),
@db_path varchar(40)
as
delcare @sql varchar(500)
set @sql='create database '+@db_name+'on'+
'('+'name'+'='+@db_name1+','+
'filename=char(39)+@db_path+char(39)+'+','+
'size=1mb'+','+
'maxsize=2mb'+','+
'filegrowth=10%'+')'
exec (@sql)
hawaii_wx 2005-01-20
  • 打赏
  • 举报
回复
有知道的吗,告诉我一下为什么呀!
hawaii_wx 2005-01-20
  • 打赏
  • 举报
回复
怎么没人来解决呀,如果分不够我可以再加的呀

34,838

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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