<script type="text/javascript">
</script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
最近写procedure,遇到一些问题。其中我觉得关于“用 变量名作为表名”的问题较有价值,写出和大家一起分享。请各位若有好的 解决方案一定要不吝赐教。
情景:
如果你在写procedure时要根据特定变量的值动态创建table(表名是全部或部分特定变量的值)。例如:
declare@tablename char(10)
//ifsomestatement
set@tablename='test'
你想用变量@tablename的值作为表名创建一个新表,那么用createtable@tablename(testchar(8))语句在 SqlServer2k中执行就会遇到问题,
解决(接上例):
//如果表不存在则创建
IFnotEXISTS(SELECTnameFROMsysobjects
WHEREname=@tablename ANDtype='U')
begin
set@createtable='createtable'+@tablename+'(myname char(2))'
exec(@createtable)
end
<完>
<script type="text/javascript"> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
<script type="text/javascript">
</script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
最近写procedure,遇到一些问题。其中我觉得关于“用 变量名作为表名”的问题较有价值,写出和大家一起分享。请各位若有好的 解决方案一定要不吝赐教。
情景:
如果你在写procedure时要根据特定变量的值动态创建table(表名是全部或部分特定变量的值)。例如:
declare@tablename char(10)
//ifsomestatement
set@tablename='test'
你想用变量@tablename的值作为表名创建一个新表,那么用createtable@tablename(testchar(8))语句在 SqlServer2k中执行就会遇到问题,
解决(接上例):
//如果表不存在则创建
IFnotEXISTS(SELECTnameFROMsysobjects
WHEREname=@tablename ANDtype='U')
begin
set@createtable='createtable'+@tablename+'(myname char(2))'
exec(@createtable)
end
<完>
<script type="text/javascript"> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
<script type="text/javascript">
</script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>