В моей процедуре мне нужно иметь входные параметры для таблицы, и я должен быть в состоянии сделать несколько операторов выбора в моей процедуре.Однако, когда я начал добавлять условия WHERE, они работали только с числовыми условиями, то есть, где число = 1, но это не работает для text = 'a', поскольку оператор уже открывается с помощью '' т.е. 'select ...' (см.код)
Таким образом, условия текста конфликтуют с открывающей кавычкой.
Так как мне добавить это оператор where в отношении текста?
(Проблема в том, где дата)
Вывод следующий:
Сообщение 102, Уровень 15, Состояние 1, Строка 23
Неверный синтаксис рядом с '00'.
(затронуто 53 строки)
Я пыталсяразделите предложение where с помощью «», но без использования.
Я пытался использовать «внутри», но безрезультатно, и говорит «имя столбца не распознано»
Я пытался трактовать текст как числовой без «», но нетuse.
CREATE PROCEDURE AllRowsAndCount35
@table1 NVARCHAR(128)
AS
BEGIN
DECLARE @SafeTableName AS NVARCHAR(128)
SELECT @SafeTableName = QUOTENAME(TABLE_NAME)
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_NAME = @table1
DECLARE @sql AS NVARCHAR(MAX) = 'select count(*) as countrows from ' + @SafeTableName + 'where valid_from_etl = 2019-06-24 00:00:00.000'
EXEC(@SQL)
DECLARE @sql2 AS NVARCHAR(MAX) = 'select * from ' + @SafeTableName
EXEC(@SQL2)
END
EXEC AllRowsAndCount35 'Dim_Cluster'
Я хотел бы, чтобы результат показывал количество строк, другой отдельный результат, показывающий всю таблицу
В основном два отдельных запроса, основанные на процедуре, в которой я ввожу имя таблицы каквходной параметр
Вместо этого сообщение об ошибке:
Msg 102, Уровень 15, Состояние 1, Строка 23
Неверный синтаксис рядом с '00'.