[英]How to Create Table from Stored Procedure?
我正在嘗試從存儲過程創建表,但是在執行該過程時,出現以下錯誤:
信息343,第15層,狀態1,第1行
在CREATE,DROP或ALTER語句中使用的未知對象類型'TABLEPunith_INC_T_Partner_PlusEligible_YE_APJC'。
消息4701,第16級,狀態1,第1行
無法找到對象“ PTEST”,因為它不存在或您沒有權限。
這是我的存儲過程
ALTER PROCEDURE [dbo].[SP_PTEST2]
AS
BEGIN
DECLARE @OBJECTNM NVARCHAR(100)
DECLARE @SQLSTR NVARCHAR(MAX)
SET @OBJECTNM = 'PTEST'
IF (EXISTS (SELECT 1 FROM SYS.OBJECTS WHERE NAME = 'PTEST'))
BEGIN
SET @SQLSTR = 'DROP TABLE ' + @OBJECTNM
EXEC(@SQLSTR)
END
SET @SQLSTR = 'CREATE TABLE' + @OBJECTNM + '(
Country VARCHAR(255),
BE_Geo_ID INT,
BE_Geo_Name VARCHAR(255),
Certification VARCHAR(200),
)'
EXEC(@SQLSTR)
SET @SQLSTR = 'TRUNCATE TABLE ' + @OBJECTNM
EXEC(@SQLSTR)
SET @SQLSTR = 'BULK INSERT ' + @OBJECTNM +
' FROM ''C:\Desktop\Part plus.csv''
WITH (
FIELDTERMINATOR = '','',
ROWTERMINATOR = ''\n'',
FIRSTROW = 2
)'
EXEC(@SQLSTR)
End
我花了幾個小時在上面,但是我無法執行存儲過程,也嘗試使用其他類型的過程執行但未創建表。
有人請幫我。
提前致謝。
SET @SQLSTR = 'CREATE TABLE_' + @OBJECTNM + '(
Country VARCHAR(255),
缺少空格,請將其添加到上方的_位置。
@SQLSTR
正在讀取CREATE TABLEPTEST(
而不是CREATE TABLE PTEST(
編輯,注釋不明確,將您的行替換為下面的行。 上面的方法不起作用,因為我使用下划線作為占位符,以便您可以看到丟失的空間在哪里。
SET @SQLSTR = 'CREATE TABLE ' + @OBJECTNM + '(
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.