标签: sql-scripts

在一个脚本中创建SQL Server表和存储过程?

我有一个SQL脚本,它正在设置两个数据库表及其键和约束,没有任何问题.我不会包含整个代码,但它的"骨架"看起来像这样:

 BEGIN
CREATE TABLE [table] (

)

CREATE TABLE [table2] (

)

ALTER TABLE table...

ALTER TABLE table2....


END
Run Code Online (Sandbox Code Playgroud)

我很难尝试将存储过程添加到此脚本中,理想情况下,我希望将所有内容都包含在同一个脚本中.有人可以告诉我如何将以下存储过程包含在上面的脚本中吗?

CREATE PROCEDURE Test
    @x int
AS
BEGIN
    SELECT COUNT(*)
    FROM table
END
GO
Run Code Online (Sandbox Code Playgroud)

我已经尝试将它放在脚本的末尾,并且尝试使用和不使用BEGIN,END和GO标记但是我一直收到错误,其中显示"PROCEDURE附近的语法不正确".

sql sql-server stored-procedures sql-scripts

4
推荐指数
1
解决办法
6957
查看次数

在sql server 2008中生成脚本时添加新列

我尝试在 Sql Server 2008 中为 ma DB 生成脚本..并且我能够做到这一点,生成的脚本是:

USE [Cab_Booking]
GO
/****** Object:  Table [dbo].[User]    Script Date: 05/19/2013 10:33:05 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[User]') AND type in (N'U'))
BEGIN
CREATE TABLE [dbo].[User](
    [U_Id] [int] IDENTITY(1,1) NOT NULL,
    [UserName] [nvarchar](50) NOT NULL,
    [Password] [nvarchar](50) NOT NULL,
    add column new int not null,
 CONSTRAINT [PK_User] PRIMARY KEY CLUSTERED 
(
    [U_Id] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = …
Run Code Online (Sandbox Code Playgroud)

sql-scripts sql-server-2008

4
推荐指数
1
解决办法
3731
查看次数

根据条件生成脚本

可以使用 SQL Server Management Studio 生成特定表的插入,方法是右键单击数据库 -> 任务 -> 生成脚本,选择表,最后仅选择数据。然而,随着时间的推移,表变得越来越大,我只需要具有特定条件的插入,这只会返回该表中的部分数据。

示例:有一张桌子

FlightTickets
(
    TicketId(PK), 
    BuyerId(FK to buyers), 
    FlightId(FK to Flights)
)
Run Code Online (Sandbox Code Playgroud)

我只需要条件 FlightId = 12345 的插入脚本。

是否可以在 SQL Server Management Studio 中完成,或者我是否必须用 C# 编写一些内容来处理这个问题?

sql sql-server ssms generator sql-scripts

4
推荐指数
1
解决办法
9099
查看次数

SQL Server 2012:如何将所有数据库存储过程编写成单独的.sql文件脚本?

我想将所有从SQL Server 2012到Visual Studio 2012的存储过程编写为.sql文件脚本 (在另一个项目中)。我怎么做?我需要每个存储过程一个.sql文件吗?在SQL Server 2012中右键单击数据库后,可以使用“在任务中生成脚本”选项获取脚本。但是,在每种情况下,.sql文件的名称均为spname.StoredProcedure。我希望该名称为spname.sql。同样,我不希望文件名是database.spname.StoredProcedure,我希望它只是spname.sql

sql sql-server sql-scripts generate-scripts visual-studio-2012

4
推荐指数
2
解决办法
1万
查看次数

有没有一种方法可以在DBeaver的SQL脚本中定义结果选项卡名称的名称?

我正在创建一个运行在一条记录上的MySQL脚本,并从一系列其他表中提取关联的记录,这非常有用,但在DBeaver中,结果以选项卡的形式返回,该选项卡仅包含结果的表名,是非常有用的,但有时让选项卡准确显示结果是非常有用的。

有没有一种方法可以在SQL脚本中指定应该由DBeaver拾取的结果的名称,以便将其显示为选项卡名称?

在DBeaver中,如果我执行以下脚本(Opt + X):

SELECT *
FROM
  partnerships;

SELECT id, name, owner_id
FROM
  partnerships
WHERE
  name LIKE '%wp%';
Run Code Online (Sandbox Code Playgroud)

对于这两个查询的结果拿出两种不同的标签在DBeaver屏幕的底部,一个将被命名为partnerships和其他partnerships-1。什么我问的是,如果有一种方法,使这些标签更有意义的事情对我来说,喜欢All PartnershipsWP Partnerships

mysql sql sql-scripts dbeaver

4
推荐指数
1
解决办法
783
查看次数

在MySQL命令行中执行.sql脚本的正确语法是什么?

我很迷惑.从我在网上看过的参考文献中,执行文本文件脚本的命令是这样的:

mysql> --user=root --password=admin --database=zero <query.sql
Run Code Online (Sandbox Code Playgroud)

但是当我运行它时,命令行说myres语法错误(错误1064).我将query.sql脚本文件保存在C:程序文件中......\MYSQL\MYSQL Server5.1 ..(包含mySQL命令行终端.exe的文件夹目录)

然后我这样做了:

 mysql> USE db1 \g
 mysql> source <query.sql \g
Run Code Online (Sandbox Code Playgroud)

它也不起作用; 命令行给了我同样的错误.我拥有的mySQL版本与我见过的其他版本不同.如您所见,您必须在每个查询的末尾添加'\ g'.

请帮忙,如果说明不是很清楚,请告诉我

编辑:所以这是我在query.sql中的代码:

CREATE TABLE IF NOT EXISTS 'db1'(
'id' int(255) NOT NULL auto_increment,
'date' date NOT NULL,
'title' varchar(255) NOT NULL,
'introtext' text NOT NULL,
'maintext' text NOT NULL,
PRIMARY KEY ('id')
)
Run Code Online (Sandbox Code Playgroud)

mysql sql-scripts mysql-error-1064

3
推荐指数
1
解决办法
2万
查看次数

使用不同的参数多次执行SQL查询

我有一个SQL存储过程,我需要使用不同的参数执行几次.是否可以执行某种类型的SQL脚本,它会像数组或其他不同参数的数据结构一样多次执行?有什么想法吗?

sql-server sql-scripts

3
推荐指数
2
解决办法
5459
查看次数

如何在Oracle中一个接一个地运行多个脚本?

我有以下脚本:

ALTER TABLE ODANBIRM 
ADD (OBID NUMBER(10, 0) );
----------------------------------------------------------------------------
CREATE OR REPLACE TRIGGER TR_OB_INC 
BEFORE INSERT ON ODANBIRM
FOR EACH ROW 
BEGIN
  SELECT SEQ_OB.NEXTVAL INTO :NEW.OBID FROM DUAL;
END;

-----------------------------------------------------------------------------

DECLARE
CURSOR CUR IS
SELECT ROWID AS RID FROM ODANBIRM;

  RC CUR%ROWTYPE;
BEGIN
  OPEN CUR;

 LOOP
  FETCH CUR INTO RC;

    EXIT WHEN CUR%NOTFOUND;

  UPDATE ODANBIRM SET OBID=SEQ_OB.NEXTVAL WHERE ROWID=RC.RID;
   END LOOP;

 CLOSE CUR;
  COMMIT;
 END;
Run Code Online (Sandbox Code Playgroud)

如你所见,我有三个不同的脚本(我用虚线分隔它们.)如果我运行这个第一个脚本运行但第二个脚本,我想创建一个触发器失败说"遇到符号"DECLARE"".如果我把触发器创建脚本拿走,我就不会出错,第一个和最后一个脚本运行没有问题.如何在不出错的情况下运行它们我该怎么办?

编辑:然后我意识到第二个脚本应该是这样的:

UPDATE ODANBIRM SET OBID=SEQ_OB.NEXTVAL;
Run Code Online (Sandbox Code Playgroud)

所以在循环中做这个简单的事情是浪费时间和低效率.我曾经听说过应该尽可能多地使用SQL和尽可能少的PL SQL来提高效率.我认为这是个好主意.

oracle sql-scripts

3
推荐指数
1
解决办法
5191
查看次数

如何在Oracle SQL Developer中执行超过100万个插入查询?

我有超过100万个插入查询要在Oracle SQL Developer中执行,这需要花费很多时间.有没有办法优化这个.

sql oracle sql-scripts oracle-sqldeveloper

3
推荐指数
1
解决办法
3198
查看次数

在oracle中创建表作为select语句主键

是否可以指定哪个是创建表作为选择语句的主键?我的目标是在创建表上包含主键的声明,而不是在创建后修改表。

CREATE TABLE suppliers
AS (SELECT company_id, address, city, state, zip
  FROM companies
  WHERE company_id < 5000);
Run Code Online (Sandbox Code Playgroud)

oracle plsql sql-scripts plsqldeveloper

3
推荐指数
1
解决办法
3107
查看次数