Есть ли способ использовать определение столбца в таблице для определения переменной в sproc? Например, в таблице Employees имеется столбец с именем LastName. В INFORMATION_SCHEMA.COLUMNS вы можете получить DATA_TYPE ('nvarchar') и CHARACTER_MAXIMUM_LENGTH (50). Я хотел бы знать, можно ли использовать эти два дескриптора, чтобы создать переменную в sproc. Я видел технику, которая использовалась в Oracle, которая была очень похожа. Они создали таблицу и использовали определение для объявления переменной:Создать переменную в sproc на основе определения столбца в таблице
CREATE TABLE TEST_CONSTANTS (
MAX_LEN VARCHAR2(32)
);
DECLARE x TEST_CONSTANTS.MAX_LEN%TYPE;
BEGIN
x := 'Test';
dbms_output.put_line(x);
END;
Я ищу что-то похожее на это. Таким образом, если столбец в таблице изменится, мне, возможно, не придется менять свой код (также я бы не использовал varchar (max)).
Дайте мне знать, если требуются какие-либо дополнительные разъяснения.
TIA !!
Вам понадобится динамический SQL, чтобы делать то, что вы хотите – Lamak
T-SQL на самом деле не язык, который используется для метапрограммирования. Является ли ваша цель просто объявлением переменной смешного типа или у вас есть реальная проблема для решения? –
Собственно, только что понял, что вы отметили SQL-Server, но ваш код не является T-SQL. Вы ошиблись? Может быть, вы нацелены на Oracle? –