22,210
社区成员
发帖
与我相关
我的任务
分享
USE MyDB
GO
CREATE PROC [dbo].[test]
AS
BEGIN
PRINT 'HI'
END
declare @sql nvarchar(max)
set @sql=''
set @sql='
USE MyDB
GO
CREATE PROC [dbo].[test]
AS
BEGIN
PRINT ''HI''
END
'
错误信息:
消息 102,级别 15,状态 1,第 1 行
'GO' 附近有语法错误。
消息 111,级别 15,状态 1,第 7 行
'CREATE/ALTER PROCEDURE' 必须是查询批次中的第一个语句。
如果我先执行
[code=SQL]
set @sql=N'
USE MyDB
’
exec @sql
set @sql=N'
CREATE PROC [dbo].[test]
AS
BEGIN
PRINT ''HI''
END
'
exec @sql
USE MyDB
go
CREATE PROC P2
(@sql NVARCHAR(1000)
)AS
EXEC(@sql)
USE master
go
declare @sql nvarchar(max)
set @sql=''
set @sql=
'
CREATE PROC [dbo].[test]
AS
BEGIN
PRINT ''HI''
END
'
EXEC MyDB.dbo.P2 @sql
USE MyDB
declare @sql nvarchar(max)
set @sql='
CREATE PROC [dbo].[test]
AS
BEGIN
PRINT ''HI''
END
'
exec(@sql)
declare @sql nvarchar(max)
set @sql=''
set @sql='
CREATE PROC MyDB.[dbo].[test]
AS
BEGIN
PRINT ''HI''
END
'
exec(@sql)
GO
CREATE PROC MyDB.[dbo].[test]
AS
BEGIN
PRINT ''HI''
END
'
if object_id('test') is not null
drop proc test
CREATE PROC [dbo].[test]
AS
BEGIN
PRINT ''HI''
END