[SQLServer] SP om nieuwe DB te maken met daarin weer een SP

Pagina: 1
Acties:

  • bdgroot
  • Registratie: Augustus 2002
  • Laatst online: 27-11-2024
In het projectje waar ik mee bezig ben wil ik een stored procedure maken waarin ik 2 dingen doe:

1. Een nieuwe database maken.
2. In die database een stored procedure opslaan

Dat eerste is wel al gelukt :Y) Het tweede geeft problemen. Ik heb tot nu toe geprobeerd om een script te genereren van een andere database waarin een SP zit en die code ziet er op zich nog wel bruikbaar uit, maar het proleem ermee is dat die SP gemaakt lijkt te worden in de database waarin ik bezig ben en NIET in de nieuwe database. Hier een stukje code dat ik heb:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
/*Hier de code om een nieuwe database te maken*/

SET QUOTED_IDENTIFIER OFF 
SET ANSI_NULLS OFF 

CREATE PROCEDURE Mijn_Procedure

AS

/*Hier de code van de procedure*/

SET QUOTED_IDENTIFIER OFF 
SET ANSI_NULLS ON 
GO

In het gegenereerde script strond er onder elk set-statement een GO. Deze moet ik echter weghalen, anders dan wordt de stored procedure bij de eerste GO afgekapt en dat wil ik niet. Maar als ik het uitvoer zoals nu werkt het dus ook niet.

Kan iemand mij vertellen OF en zo ja HOE ik wel een stored procedure in een nieuwe database kan zetten vanuit deze stored procedure?

edit:

Ja, ik heb ook al gegoogled :P

[ Voor 3% gewijzigd door bdgroot op 05-10-2004 12:12 ]

Laat een computer nooit merken dat je gehaast bent.


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 13-08 16:46

curry684

left part of the evil twins

Al eens naar fully qualified names gekeken? :?

Professionele website nodig?


  • bdgroot
  • Registratie: Augustus 2002
  • Laatst online: 27-11-2024
Wie zegt u?

Checking...

Laat een computer nooit merken dat je gehaast bent.


  • whoami
  • Registratie: December 2000
  • Laatst online: 15:46
code:
1
2
3
4
5
6
7
CREATE DATABASE
....
GO
USE newdatabasename

CREATE PROCEDURE
...

https://fgheysels.github.io/


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 13-08 16:46

curry684

left part of the evil twins

Hmm nevermind, een druk op F1 loste het ook al op:
You can create stored procedures using the CREATE PROCEDURE Transact-SQL statement. Before creating a stored procedure, consider that:

CREATE PROCEDURE statements cannot be combined with other SQL statements in a single batch.
• Permission to create stored procedures defaults to the database owner, who can transfer it to other users.
• Stored procedures are database objects, and their names must follow the rules for identifiers.
You can create a stored procedure only in the current database.
Oftewel het kan niet.

Professionele website nodig?


  • bdgroot
  • Registratie: Augustus 2002
  • Laatst online: 27-11-2024
whoami schreef op 05 oktober 2004 @ 12:15:
code:
1
2
3
4
5
6
7
CREATE DATABASE
....
GO
USE newdatabasename

CREATE PROCEDURE
...
Helaas, Use kun je niet gebruiken in een procedure of trigger...
curry684 schreef op 05 oktober 2004 @ 12:16:
Hmm nevermind, een druk op F1 loste het ook al op:

[...]

Oftewel het kan niet.
Baal! Waar vind je dat in de help? heb ik ook gekeken, misschien met mijn ogen dicht?? :? 8)7 Naja, dan ga ik een workaround proberen te vinden voor mijn probleempje...

Laat een computer nooit merken dat je gehaast bent.


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 13-08 16:46

curry684

left part of the evil twins

bdgroot schreef op 05 oktober 2004 @ 12:22:
[...]

Baal! Waar vind je dat in de help? heb ik ook gekeken, misschien met mijn ogen dicht?? :?
Uhm bij het kopje 'CREATE PROCEDURE', subsectie 'Creating and Maintaining Databases'? :X

Professionele website nodig?


  • whoami
  • Registratie: December 2000
  • Laatst online: 15:46
curry684 schreef op 05 oktober 2004 @ 12:16:
Hmm nevermind, een druk op F1 loste het ook al op:

[...]

Oftewel het kan niet.
Een batch sluit je af met een 'GO' statement.

Misschien lukt het wel als je een FQN gebruikt:
code:
1
2
3
4
5
6
7
CREATE DATABASE mydatabase
GO
-- batch is beëindigd

CREATE PROCEDURE mydatabase.dbo.ProcedureName
...
GO

https://fgheysels.github.io/


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 13-08 16:46

curry684

left part of the evil twins

Tipje:
GO is not a Transact-SQL statement; it is a command recognized by the osql and isql utilities and SQL Query Analyzer.

SQL Server utilities interpret GO as a signal that they should send the current batch of Transact-SQL statements to SQL Server. The current batch of statements is composed of all statements entered since the last GO, or since the start of the ad hoc session or script if this is the first GO. SQL Query Analyzer and the osql and isql command prompt utilities implement GO differently. For more information, see osql Utility, isql Utility, and SQL Query Analyzer.
Ik vraag me af hoe jij GO in een SP wil gebruiken ;)

Professionele website nodig?


  • whoami
  • Registratie: December 2000
  • Laatst online: 15:46
Bah.
Maak dan geen SP maar een DDL file ofzo.

https://fgheysels.github.io/

Pagina: 1