我想用存儲過程創建一個表。我將表格作爲CREATE語句編寫,並將文件內容複製到我的過程中,這很好。除了設置默認值時,它將第一列默認設置爲整個第二行。SQL創建表存儲過程沒有正確設置默認值
這裏的程序:
CREATE PROCEDURE [dbo].[spCreatetblLocation]
AS
EXEC
('
SET ANSI_NULLS ON
SET QUOTED_IDENTIFIER ON
CREATE TABLE [dbo].[tblLocation](
[pkLocationID] [int] IDENTITY(1,1) NOT NULL,
[fldName] [nvarchar](100) NOT NULL,
[fldPath] [nvarchar](1000) NOT NULL,
[fkYearID] [int] NOT NULL,
CONSTRAINT [PK_LocationID] PRIMARY KEY CLUSTERED
(
[pkLocationID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
ALTER TABLE [dbo].[tblLocation] ADD DEFAULT N'' FOR [fldName]
ALTER TABLE [dbo].[tblLocation] ADD DEFAULT N'' FOR [fldPath]
')
執行後,列[fldName]
有FOR [fldName] ALTER TABLE [dbo].[tblLocation] ADD DEFAULT N'' FOR [fldPath]
默認值這是有道理的,它只是不承認在(N「」)的第二個引號,但爲什麼不?我該如何解決它?
UPDATE:
我已經瞭解到,創建表的正確方法是通過閱讀和執行SQL腳本文件。這使數據操作和數據庫操作保持獨立,並且更易於管理。
標籤您正在使用的數據庫管理系統。 (很多產品特定的SQL ...) – jarlh
看起來像SQL服務器 –
爲什麼你需要在存儲過程中創建一個表? –