I need your help for a little problem on SQL. For information my environement is SQL Express 2008 R2 used in local on my computer for lab tests. Hello So, I want run this procedure step by step like :
1st query : Proc_Choise_Test 1; ==> Create MY_DATABASE
2nd query : Proc_Choise_Test 2; ==> Create Tables
...
The problem is, when I use this commande : "Proc_Choise_Test 1;" I have an error message says : "The MY_DATABASE database doesn't exist" or something like that (because my SQL server is in French version)
But, when I run each choise one by one, everything works.
I don't know where is the error on my procedure...
Thanks a lot for your action ;)
--===============================================================--
--CREATE / ALTER procedure Proc_Choise_Test
--===============================================================--
CREATE PROCEDURE Proc_Choise_Test
@Proc_Choise_Test INT
AS
BEGIN
--===============================================================--
--Creation of GOTO for query
--===============================================================--
IF @Proc_Choise_Test = 1 GOTO Choise1
IF @Proc_Choise_Test = 2 GOTO Choise2
IF @Proc_Choise_Test = 3 GOTO Choise3
IF @Proc_Choise_Test = 4 GOTO Choise4
IF @Proc_Choise_Test > 4 GOTO ChoiseERROR
--===============================================================--
--Choise 1 : CREATE DATABASE : MY_DATABASE
--===============================================================--
Choise1:
CREATE DATABASE MY_DATABASE;
GOTO ChoiseEnd
--===============================================================--
--Choise 2 : CREATE TABLE IN MY_DATABASE
--===============================================================--
Choise2:
CREATE TABLE MY_DATABASE.dbo.TB_Clients
(
clients_id INT IDENTITY(1,1) NOT NULL PRIMARY KEY,
clients_contact_nom NVARCHAR(255),
clients_contact_prenom NVARCHAR(255),
clients_entreprise NVARCHAR(255),
clients_adresse NVARCHAR(255),
clients_code_postal NVARCHAR(10),
clients_ville NVARCHAR(255),
clients_tel NVARCHAR(20),
clients_infos NVARCHAR(255)
);
CREATE TABLE MY_DATABASE.dbo.TB_Projets
(
projets_clients_id INT,
projets_id INT NOT NULL PRIMARY KEY,
projets_employe_cdp NVARCHAR(255),
projets_date_vente DATE,
projets_date_installation DATE,
);
GOTO ChoiseEnd
--===============================================================--
--Choise 3 : INSERT CSV IN TB_Clients TABLE
--===============================================================--
Choise3:
BULK
INSERT MY_DATABASE.dbo.TB_Clients
FROM 'C:\Temp\testcsv.txt'
WITH
(
FIELDTERMINATOR = ',',
ROWTERMINATOR = '\n'
)
GOTO ChoiseEnd
--===============================================================--
--Choise 4 : DECLARE VAR FOR EXPORT
--===============================================================--
Choise4:
DECLARE @FileName VARCHAR(100)
DECLARE @Name_File VARCHAR(100)
DECLARE @Sqlreq VARCHAR(8000)
--===============================================================--
--EXPORT IN TXT FILE IN C:\Temp\Export\
--===============================================================--
SET @FileName = 'RM_EXPORT' + (SELECT CONVERT (VARCHAR(8),GETDATE(),112) + '_' + REPLACE(CONVERT (VARCHAR(8),GETDATE(),108), ':', '-'))
If @FileName > ''
BEGIN
SET @Sqlreq = 'bcp "SELECT * FROM MY_DATABASE.dbo.TB_Clients" queryout "'
SET @Sqlreq = @Sqlreq + 'C:\Temp\' + @FileName + '.txt' + '" -T -c -t"|"'
print @Sqlreq
exec master..xp_cmdshell @Sqlreq
END
ELSE
BEGIN
SELECT *
FROM MY_DATABASE.dbo.TB_Clients
ORDER BY clients_entreprise
END
GOTO ChoiseEnd
--===============================================================--
--Choise ERROR : ERROR MESSAGE
--===============================================================--
ChoiseERROR:
SELECT 'ERROR'
--===============================================================--
--ChoiseEnd : ENDING QUERY
--===============================================================--
ChoiseEnd:
END