动态SQL 可能 比存储的proc 慢 ,但并非总是如此,并且随着SQL
Server的成熟,动态SQL变得更好。只要有可能,都应使用非动态SQL,因为它更干净且易于维护。但是,动态SQL确实占有一席之地(诸如Entity
framework和NHibernate之类的ORM工具几乎只使用动态sql)。应该尽可能避免使用游标,但是SQL确实支持WHILE循环,可以代替使用它。
DECLARE @Identity int = SELECt MIN(ex.Identity) FROM Example exDECLARE @TableName varchar(200)DECLARE @ColumnName varchar(200)WHILE @Identity IS NOT NULL BEGIN SELECt @TableName = ex.TableName, @ColumnName = ex.ColumnName FROM Example ex WHERe ex.Identity = @Identity SET @Identity int = SELECt MIN(ex.Identity) FROM Example ex WHERe ex.Identity > @IdentityEND



