目的:想在表TTest存在时打印错误信息然后退出。
问题:如果数据库中表TTest存在,执行该脚本会打印'error:TTest exist’,但是还是会执行return后面的语句。如果将return改成quit,print语句又打印不出来。以下内容存为xxx.sql文本,利用sqlcmd命令行执行if exists (SELECT * FROM dbo.sysobjects where id = object_id(N'TTest') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
begin
print 'error: TTest exist'
return
end--以下内容希望在存在表时不执行SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[TTest](
[Id] [uniqueidentifier] NOT NULL,
CONSTRAINT [PK_TTest] PRIMARY KEY CLUSTERED
(
[Id] ASC
)
GO
问题:如果数据库中表TTest存在,执行该脚本会打印'error:TTest exist’,但是还是会执行return后面的语句。如果将return改成quit,print语句又打印不出来。以下内容存为xxx.sql文本,利用sqlcmd命令行执行if exists (SELECT * FROM dbo.sysobjects where id = object_id(N'TTest') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
begin
print 'error: TTest exist'
return
end--以下内容希望在存在表时不执行SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[TTest](
[Id] [uniqueidentifier] NOT NULL,
CONSTRAINT [PK_TTest] PRIMARY KEY CLUSTERED
(
[Id] ASC
)
GO
一个go代表一个段批处理结束,就相当于两个查询窗口,下面的与上面的互不影响
还要就是,一般if exists 然后可以用else接后续的操作,这样也不会执行
你在窗口A中想停止窗口B中的操作停止是不可能的
print 'xxxx'
exit