在一个脚本中创建SQL Server表和存储过程?
我有一个SQL脚本,用它们的键和约束设置两个数据库表没有任何问题。我将不包括整个代码,但“骨架”它看起来像这样:在一个脚本中创建SQL Server表和存储过程?
BEGIN
CREATE TABLE [table] (
)
CREATE TABLE [table2] (
)
ALTER TABLE table...
ALTER TABLE table2....
END
我坚持努力的存储过程,虽然到这个剧本,我非常希望包括此范围内的所有相同脚本。有人能告诉我如何将以下存储过程包含到上面的脚本中吗?
CREATE PROCEDURE Test
@x int
AS
BEGIN
SELECT COUNT(*)
FROM table
END
GO
我试图把它推向脚本的结尾,也试图与不BEGIN,END和GO标签,但我不断收到写着“近程序不正确的语法”错误。
试试这样说:
USE BDNAME
GO
BEGIN
CREATE TABLE [table] (
)
CREATE TABLE [table2] (
)
ALTER TABLE table...
ALTER TABLE table2....
END
USE BDNAME
GO
CREATE PROCEDURE Test
@x int
AS
BEGIN
SELECT COUNT(*)
FROM table
END
GO
使用BEGIN END相反的,把你所有的之类的语句创建,更改之间GO。另外我想告诉你,把GO放在你的脚本中会创建块,所以如果你在一个块中创建了一些局部变量,那么在另一个块中不能访问它。
CREATE Table Table1(
--Your Code
)
GO
CREATE PROCEDURE Test
@x int
AS
BEGIN
SELECT COUNT(*)
FROM Table1
END
GO
--Continue your script
希望这会有所帮助。
您的意思是在每个代码块之后放置GO。这样做后,我得到了以下错误:关键字'CREATE'附近的语法不正确。 关键字'ALTER'附近的语法不正确。 'GO'附近语法不正确。 'GO'附近语法不正确。 'CREATE/ALTER PROCEDURE'必须是查询批处理中的第一条语句。 – DevDave 2012-01-06 09:36:40
如果您可以发布您的实际脚本,可能会很容易,可能是初始代码块 – 2012-01-06 09:41:35
你想创建一个SQL脚本?我很困惑于“模式”这个词。 – 2012-01-06 09:27:14
对不起,也许这就是我的意思! SQL新手 – DevDave 2012-01-06 09:29:04
如果在将'GO'添加到脚本时出现错误,则必须有另一个问题。我知道你说剧本很长,但也许你可以发表引起问题的部分?另外,如果您不确定它,请阅读“GO”文档:http://msdn.microsoft.com/en-us/library/ms188037.aspx – Tony 2012-01-06 09:37:31