我应该使用动态SQL

时间:2012-07-11 09:08:20

标签: sql-server dynamic bulk

我对“我应该使用动态sql创建数据库表吗?”有些含糊不清。 有没有更安全的替代方式。

例如:

    ALTER PROCEDURE [dbo].[GenerateTable]
                 -- @Columns varchar(300)
                  @TableName varchar(25),
                  @Column varchar(1000),
                  @SQl varchar(1000) output
AS
BEGIN
    DECLARE @Columns xml
    --DECLARE @SQL varchar(500) 
    --DECLARE @Column varchar(225)
    DECLARE @PreSQL varchar(1000)
    --DECLARE @ResultSet varchar(MAX)
    DECLARE @Temp varchar(20)
    DECLARE @StarIndex int
    DECLARE @MaxLength varchar(20)
    Select @Columns =(  Select * From OPENROWSET(
                        BULK  'C:\Data\csvToXml.xml',SINGLE_BLOB)x)

            SELECT @PreSQL='CREATE TABLE '+@TableName+' ('
            SELECT @SQL=''
            SELECT @SQl=@PreSQL +@Column+')'
            SELECT @SQL=REPLACE(@SQL,'/','_')
            exec(@SQL)
END

TIA!

0 个答案:

没有答案