1 messaggio dal 01 agosto 2006
Salve a tutti?
Qualcuno di voi sa come creare delle tabelle in cui il nome non è costante ma viene passato come parametro di una stored procedure da VB6? Riesco a passare il parametro da VB a SQL Server ma non ad impostarlo come nome di tabella.
Grazie anticipatamente per il vostro aiuto, buona serata

Francesco
1.976 messaggi dal 27 luglio 2005
Contributi
salve Francesco,
ciccioam ha scritto:
Salve a tutti?
Qualcuno di voi sa come creare delle tabelle in cui il nome non è costante ma viene passato come parametro di una stored procedure da VB6? Riesco a passare il parametro da VB a SQL Server ma non ad impostarlo come nome di tabella.
Grazie anticipatamente per il vostro aiuto, buona serata

Francesco


SQL Server accetta solo "costanti" come identificativi dei nomi, non puoi quindi utilizzare delle variabili dinamiche... puoi solo "passare" attraverso l'uso di SQL Dinamico, dove appunto costruisci dinamicamente un comando da eseguirsi ad esempio tramite EXEC (@cmd) come nell'esempio di cui sotto..
tieni pero' presente che ci sono delle grosse implicazioni di sicurezza, in questo uso, non ultima la necessita' che il chiamante abbia privilegi di ddl_admin vista la tua necessita' di generare oggetti non temporanei.. vedi comunque anche il bell'articolo del MVP SQL Server Erland Sommarskog presso http://www.sommarskog.se/dynamic_sql.html

SET NOCOUNT ON;
USE tempdb;
GO
DECLARE @tbName varchar(20);
DECLARE @cmd varchar(200);

SET @tbName = '[dbo].[tabellaA]';
SET @cmd = 'CREATE TABLE {0} ( Id int NOT NULL PRIMARY KEY, Dati varchar(20) NOT NULL DEFAULT ''default'');';
SET @cmd = REPLACE(@cmd, '{0}', @tbName);
SELECT @cmd;
EXEC (@cmd);

SET @cmd = 'INSERT INTO [dbo].[tabellaA] VALUES ( 1 , DEFAULT )';
EXEC (@cmd);

SET @cmd = 'SELECT * FROM [dbo].[tabellaA]';
EXEC (@cmd);

SET @cmd = 'DROP TABLE[dbo].[tabellaA]';
EXEC (@cmd);
--<--------------

----------------------------------
CREATE TABLE [dbo].[tabellaA] ( Id int NOT NULL PRIMARY KEY, Dati varchar(20) NOT NULL DEFAULT 'default');

Id Dati
----------- --------------------
1 default

saluti

Andrea Montanari
http://www.hotelsole.com - http://www.hotelsole.com/asql/index.php

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.