Sql server SQL Server存储过程中换行符的含义是什么
这样的存储过程是有效的Sql server SQL Server存储过程中换行符的含义是什么,sql-server,stored-procedures,Sql Server,Stored Procedures,这样的存储过程是有效的 SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER PROCEDURE [dbo].[AllotTectOnBay] @date datetime, @AddTech [dbo].[AddTechnicianBayallotment] READONLY AS BEGIN SET NOCOUNT ON; begin try begin tra
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[AllotTectOnBay]
@date datetime,
@AddTech [dbo].[AddTechnicianBayallotment] READONLY
AS
BEGIN
SET NOCOUNT ON;
begin try
begin transaction
commit transaction
end try
BEGIN CATCH
rollback transaction;
declare @ErrorMessage nvarchar(max), @ErrorSeverity int, @ErrorState int;
select
@ErrorMessage = ERROR_MESSAGE() + '' Line '' + cast (ERROR_LINE() as nvarchar(5)),
@ErrorSeverity = ERROR_SEVERITY(),
@ErrorState = ERROR_STATE();
raiserror (@ErrorMessage, @ErrorSeverity, @ErrorState);
END CATCH
END
GO
但是当我把所有的东西放在一条线上时,它就不起作用了。为什么?SQL Server是否有类似于line end的功能;在C#?中,问题可能出在
GO
命令上。它必须放在一行中(可能包括注释)
Transact-SQL语句不能与GO命令占用同一行。但是,该行可以包含注释
参考链接:
从存储过程的
ALTER
到END
,您可以将其放在一行中。作为一个选项,您还可以在多行中定义sql语句
string sqlCommand = @"select * from foobar
where ....";
在将所有内容放在一行之前,请尝试使用GO分隔命令