Datenbanken
Posts 1-3 of 3
-
Michael Wohlfahrt Premium MemberThe company name is only visible to registered members.MS SQL SERVER Dynamisches SQL: seten von use [db] dynamisch
Hallo!
Ich schreibe gerade ein Script für den SQL Server, dass eine DB samt user anlegt.
Mit Hilfe von dynamischem SQL müssen die entsprechenden Werte und das PW nur in eine Variable (@dbname...) geschrieben werden, damit wird eine DB angelegt samt user und Rechten wobei der Wer dieser Variablen verwendet wird.
Nun sollen für diesen dbo Tabellen angelegt werden. Statisch würde ich dafür ein
use datenbank
machen, wobei datenbank eben der Name der DB ist.
Wie geht das dynamisch?
use @dbname
geht jedenfalls nicht.
Für Hilfe wäre ich sehr dankbar.
Gruß
M.wohlfahrt
- 29 Jul 2009, 3:06 pm
-
Christoph Pratsch Premium MemberThe company name is only visible to registered members.Re: MS SQL SERVER Dynamisches SQL: seten von use [db] dynamisch
falls Sie MSSQL2005 oder höher haben, können Sie das Problem mit Hilfe des mitgelieferten Tools "sqlcmd" lösen, hier ein kleines Beispiel:
Datei db.bat:
set dbname=test
sqlcmd -Sserver\instanz -dmaster -E -idbcreate.sql
Datei dbcreate.sql:
create database $(dbname)
go
use $(dbname)
go
create table test (spalte1 int)
go
- 03 Aug 2009, 09:06 am
-
Michael Wohlfahrt Premium MemberThe company name is only visible to registered members.Re^2: MS SQL SERVER Dynamisches SQL: seten von use [db] dynamisch
Ist zwar nett und funktioniert sicher auch
Aber es sollte aus dem Management Studio laufen...
ich kann es in der Zwischenzeit...
declare @dbname nvarchar(50)
set @dbname = 'beispiel'
declare @sql nvarchar(max)
declare @sql0 nvarchar(max)
set @sql ='
CREATE DATABASE ' + @dbname
EXEC sp_executesql @sql
SELECT @sp_executesql = quotename(@dbname) + '..sp_executesql'
set @sq0l = ' was dnamisches'
EXEC @sp_executesql @sql0
- 03 Aug 2009, 11:46 am
