Возможно ли создать хранимую процедуру с использованием cfstoredproc? Когда я запускаю следующее, я получаю Неправильный синтаксис около 'GO'.Создание хранимой процедуры с использованием cfstoredproc
<cffile action="read" file="mypath/myFile.sql" variable="sp_1">
<cfstoredproc procedure="sp_executesql" dataSource="#getDatasource()#">
<cfprocparam type="in" cfsqltype = "cf_sql_varchar" value ='#sp_1#'>
</cfstoredproc>
myFile.sql
IF OBJECT_ID('getMyData', 'P') IS NOT NULL
DROP PROC getMyData
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE getMyData
@some_var AS NVARCHAR(200)
AS
BEGIN
SET NOCOUNT ON;
DECLARE @sql AS NVARCHAR(MAX)
SET @sql = N'SELECT * FROM myTable where id = ''' + @some_var + ''' '
EXEC sp_executeSQL @sql
END
<cfquery name="createGetMyData" dataSource="#getDatasource()#">
#preservesinglequotes(sp_1)#
</cfquery>
Если вы запустите этот код в SSMS, он создает процедуру или вызывает ошибку? –
Должен быть чем-то, что диск не любит или неправильно интерпретирует. Единственное, что я вижу, это «PROC» ... Обычно я вижу, что это прописано как ПРОЦЕДУРА. –
Вот еще несколько вещей. входные vars обычно находятся в parens - как в 'CREATE PROCEDURE getMyData (@some_var AS NVARCHAR (200))' Обычно я не вижу точку с запятой после установки nocount (или если я их использую повсюду). Когда указанные идентификаторы включены, я обычно вижу идентификаторы пользователей или dbo, как в [dbo]. [GetMyData] ... и в инструкции select. Я тоже не использую их, просто добавляя это в микс :) –