sql存储过程,麻烦各位修改下,想了一天还是不会

feixuyue 2011-02-26 05:22:43
--判断是否存在存储过程CheckExistMonitor
if Exists(Select name From sysobjects Where name='CheckExistMonitor' And type='P')
-- 删除存储过程
Drop Procedure CheckExistMonitor
Go

create procedure CheckExistMonitor
as
begin
declare @MonitorExists int
select @MonitorExists=count('Allproject') from sp_databases --这句有问题
if @MonitorExists<1
begin

create database Allproject
use Allproject --最重要的问题
go
create table ProjectInfo --项目信息表
(
ProjectName varchar(50) primary key,
ProjectNote varchar(150) null,
CreateTime datetime not null,
CreatePlace varchar(50) null,
CreatePerson varchar(25) not null,
ApplyMachine varchar(25) null
)

create table UserInfo --用户信息表
(
UserName varchar(25) primary key,
UserPwd varchar(25) not null,
UserRole varchar(10) not null check(UserRole in('管理人员','普通人员')) default '普通人员',
UserPermission varchar(400) not null,
CreateTime datetime not null,
CreatePlace varchar(50) null
)

create table UserLog --用户日志表
(
UserName varchar(25) primary key,
LoginTime datetime not null,
ExitTime datetime null,
)
end
end
go


麻烦各位大神修改下,感激涕零啊
...全文
192 14 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
yyang19871226 2011-02-26
  • 打赏
  • 举报
回复
正学习存储过程
盜令玊 2011-02-26
  • 打赏
  • 举报
回复
select @MonitorExists=count('Allproject') from sp_databases --这句有问题
==>
select count('Allproject') into @MonitorExists  from sp_databases
ztxneter 2011-02-26
  • 打赏
  • 举报
回复
请加我qq:junqigame520@qq.com 给我留言,我现在回去了,下班了
feixuyue 2011-02-26
  • 打赏
  • 举报
回复
if NOT EXISTS(SELECT 1 FROM master.dbo.sysdatabases WHERE NAME='Allproject')
BEGIN
execute (' create database Allproject')
end
为什么下面代码加了个begin end 运行就有错误了
if NOT EXISTS(SELECT 1 FROM master.dbo.sysdatabases WHERE NAME='Allproject')
BEGIN
create database Allproject
end
ztxneter 2011-02-26
  • 打赏
  • 举报
回复
判断数据库是否存在,,,不存在创建数据库,,,然后再创建的数据库创建表
feixuyue 2011-02-26
  • 打赏
  • 举报
回复
7L可以讲清楚点不
wuyq11 2011-02-26
  • 打赏
  • 举报
回复
在 过程或触发器 中不允许使用 USE 数据库语句
exec(@sql)创建table
ALTER procedure [dbo].[ZXKS_GETSCORE]
AS
begin transaction
--创建临时表,直接命名
create table temp_tablename
(
id int primary key,
da varchar(300),
fs int
)
declare @count int
select @count=@@error
if(@count=0)
commit transaction
else
rollback transaction
如果要将传入参数作为数据表名的话,就会遇到一个问题:如果表名是数字那么SQL SERVER2005认不出来,会提示错误。必须将数字的表名前加上非数字的字符。存储过程如下所示:
/*
createtable '123456'
*/
alter procedure createtable
@xuehao varchar(20)
as
declare @tablename varchar(20)
set @tablename='temp'+@xuehao

exec('Create Table '+@tablename+'
( name nvarchar(15),
address nvarchar(50)
)')
ztxneter 2011-02-26
  • 打赏
  • 举报
回复
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
GO

ALTER procedure [dbo].[CheckExistMonitor]
as
BEGIN

if NOT EXISTS(SELECT 1 FROM master.dbo.sysdatabases WHERE NAME='Allproject')
BEGIN

execute (' create database Allproject')

EXECUTE ('
create table Allproject.dbo.ProjectInfo --项目信息表
(
ProjectName varchar(50) primary key,
ProjectNote varchar(150) null,
CreateTime datetime not null,
CreatePlace varchar(50) null,
CreatePerson varchar(25) not null,
ApplyMachine varchar(25) null
)

create table Allproject.dbo.UserInfo --用户信息表
(
UserName varchar(25) primary key,
UserPwd varchar(25) not null,
UserRole varchar(10) not null check(UserRole in(''管理人员'',''普通人员'')) default ''普通人员'',
UserPermission varchar(400) not null,
CreateTime datetime not null,
CreatePlace varchar(50) null
)

create table Allproject.dbo.UserLog --用户日志表
(
UserName varchar(25) primary key,
LoginTime datetime not null,
ExitTime datetime null,
)

')


end
end

「已注销」 2011-02-26
  • 打赏
  • 举报
回复
当你要使用存储过程时,用EXEC ,EXEC +存储过程名字
所以你这里 select @MonitorExists=count('Allproject') from sp_databases 当然会报错啦!
噢,对了,你下面这句要表达什么意思啊?
"select @MonitorExists=count('Allproject') from sp_databases "
你是要从数据库中获取名字为'Allproject'的数据库有多少个吗?
feixuyue 2011-02-26
  • 打赏
  • 举报
回复
我不是很懂
「已注销」 2011-02-26
  • 打赏
  • 举报
回复
sp_databases 是系统的存储过程,你这样直接用,可以吗??
feixuyue 2011-02-26
  • 打赏
  • 举报
回复
有错误,我的本意是现在先查看是否有CheckExistMonitor存储过程,如果有的话删除,然后再新建一个CheckExistMonitor存储过程.
CheckExistMonitor先查看系统
数据库中是否有allproject数据库,若没有就先新建一个allproject数据库
yalan 2011-02-26
  • 打赏
  • 举报
回复
你想怎么改呢?还不知道你想要做什么呢?

111,098

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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