我想寫一個小腳本來創建一個數據庫,如果它不存在,並創建該數據庫的表,如果該表不存在。我有這樣的:創建數據庫和表條件
IF (db_id('db') is null) BEGIN
print 'Must create the database!';
CREATE DATABASE db;
END
USE db;
IF (object_id('test_table', 'U') is null) BEGIN
print 'Must create the table!';
CREATE TABLE test_table (
id int
);
END
我得到一個奇怪的錯誤與此:
Database 'db' does not exist. Make sure that the name is entered correctly.
我猜,它的解析腳本運行之前和發現「DB」沒有按」不存在,所以它不能使用它。
必須有解決方案。任何幫助表示讚賞。
已解決!
在發佈GO關鍵字解決問題後5分鐘,我意識到了這一點。這裏是固定代碼:
IF (db_id('db') is null) BEGIN
print 'Must create the database!'
CREATE DATABASE db;
END
GO
USE db
IF (object_id('test_table', 'U') is null) BEGIN
print 'Must create the table!';
CREATE TABLE test_table (
id int
);
END
對不起浪費大家的時間。
您使用的是MS-SQL,Oracle,MySQL嗎? –
MS-SQL。我發現GO關鍵字有很大的不同。我認爲它解決了這個問題。 –
是的,你應該使用sql server中的一些語句之間,我總是忘記哪些,所以我只是垃圾郵件GO:P –