[英]A SQL Server 2005 Express query that will add a table per database
這是我要運行的查詢
DECLARE @str VARCHAR(10)
DECLARE @index int
DECLARE @SQL VARCHAR(100)
DECLARE @SQL2 VARCHAR(300)
DECLARE @SQL3 VARCHAR(400)
SET @str = 'DB'
SET @index = 0
WHILE @index < 100
BEGIN
SET @SQL = 'use ' + @str + CASE
WHEN @index < 10 THEN '00'
WHEN @index < 100 THEN '0'
ELSE ''
END + CAST(@index as VARCHAR)
EXEC(@SQL)
GO
CREATE TABLE Persons
(
PersonID int,
LastName varchar(255),
FirstName varchar(255),
Address varchar(255),
City varchar(255)
);
set @index = @index + 1
END
我認為應該在名為DB000
到DB099
的數據庫中為每個數據庫創建一個表,但是我收到3個語法錯誤,它們在下面發布
Msg 102,第15級,第1行,第18行
')'附近的語法不正確。消息137,第15級,州2,第9行
必須聲明標量變量“ @index”。消息137,第15級,州2,第11行
必須聲明標量變量“ @index”。
有人可以幫我完成這項工作嗎? 或至少指出我正確的方向?
如果您需要在名為DB000到DB099的數據庫中創建此表,這應該起作用:
DECLARE @str VARCHAR(10)
DECLARE @index int
DECLARE @SQL VARCHAR(100)
DECLARE @SQL2 VARCHAR(300)
DECLARE @SQL3 VARCHAR(400)
SET @str = 'DB'
SET @index = 0
WHILE @index < 100
BEGIN
SET @SQL = @str + CASE
WHEN @index < 10 THEN '00'
WHEN @index < 100 THEN '0'
ELSE ''
END + CAST(@index as VARCHAR)
PRINT @SQL
-- EXEC(@SQL)
SET @SQL2 = 'CREATE TABLE ' + @SQL + '..Persons
(
PersonID int,
LastName varchar(255),
FirstName varchar(255),
Address varchar(255),
City varchar(255)
);'
EXEC(@SQL2)
set @index = @index + 1
END
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.