如何用文本文件写存储过程以及触发器
来源:百度知道 编辑:UC知道 时间:2024/06/23 19:15:49
如何用文本文件写存储过程以及触发器
具个例子
sqlserver2000
create table [dbo].[position]
(
[allposition] [varchar](50) null
) ON [PRIMARY]
这是建立表
如何建立触发器和存储过程
我是在SQLServer中写好以后,生成SQL脚本的
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[proc_Login]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[proc_Login]
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS OFF
GO
CREATE proc proc_Login
(
@UserName varchar (20),
@userPwd varchar (20)
)
as
if exists(select * from tb_User where UserName=@UserName and UserPwd=@UserPwd)
return 100
else
return -100
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
因为有好几个存储过程和触发器,执行时提示GO附近有语法错误,那是什么错误,到底该怎么写
use car create table [dbo].[tb_User](
具个例子
sqlserver2000
create table [dbo].[position]
(
[allposition] [varchar](50) null
) ON [PRIMARY]
这是建立表
如何建立触发器和存储过程
我是在SQLServer中写好以后,生成SQL脚本的
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[proc_Login]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[proc_Login]
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS OFF
GO
CREATE proc proc_Login
(
@UserName varchar (20),
@userPwd varchar (20)
)
as
if exists(select * from tb_User where UserName=@UserName and UserPwd=@UserPwd)
return 100
else
return -100
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
因为有好几个存储过程和触发器,执行时提示GO附近有语法错误,那是什么错误,到底该怎么写
use car create table [dbo].[tb_User](
没有错误,请注意 CREATE proc 要在脚本文件是GO行的后面或最前面。
请注意语句及空格处不要有全角字符及格式控制控制符。
GO
CREATE proc
============
1.使用WINDOWS自带的记事本编辑和存储。
2.如果有问题,请把出错那一行GO前后的空格删一删(包括上一行末尾的),偶尔会藏有一些非法字符。
===========
已经试过了,文本中GO的前后有非法字符,将GO前后的非法字符空格删一下就可以了
user 数据库名?
我检查一下后告诉你
没有问题,我检查过了,你用txt时候如何调用出问题的?
把选择txt保存的时候保存成ascii的格式再试一下
把 Go 去掉
GO 不是 Transact-SQL 语句;它是 sqlcmd 和 osql 实用工具以及 SQL Server Management Studio 代码编辑器识别的命令。
就是说,GO不可以被传递到服务器上去执行。
你必须把脚本中的GO都删除掉,然后才可以运行。
你这是好几个代码段组合在一起了,应该在运行以前,按照GO的位置,把这些代码段分开运行,每个GO对应一个代码段,分开以后,把GO去掉就可以了。
1.把这些代码段分开运行,每个GO语句对应一个代码段
2.去掉GO